# สภาพแวดล้อม Debian เสมือน

คุณสามารถสร้างสภาพแวดล้อม Debian ที่สมบูรณ์ซึ่งสามารถใช้งานได้ภายใน Android ผ่านโมดูลเสริมของ FIRERPA ซึ่งคล้ายกับฟังก์ชันที่ `Termux` หรือ `androdeb` มีให้ คุณสามารถใช้ apt เพื่อติดตั้งซอฟต์แวร์และคอมไพล์โค้ดในสภาพแวดล้อมนี้ได้ เช่นเดียวกัน คุณสามารถคอมไพล์และใช้โปรแกรมที่เกี่ยวข้องกับ bpf ได้ด้วยตนเองในสภาพแวดล้อมนี้ มันเป็นสภาพแวดล้อมการทำงานของ Linux ที่เกือบจะสมบูรณ์ซึ่งทำงานบนอุปกรณ์ Android

```{hint}
สภาพแวดล้อม Debian นี้มีเพียงแพ็คเกจพื้นฐานเท่านั้น คุณต้องใช้ apt เพื่อติดตั้งคำสั่งที่ใช้บ่อย เช่น git, python3 ด้วยตนเอง
```

## การติดตั้งสภาพแวดล้อม

คุณสามารถค้นหา `lamda-mod-debian-arm64-v8a.tar.gz` ได้ในหน้า release ของโปรเจกต์ (โปรดดาวน์โหลดแพ็คเกจการติดตั้งที่ตรงกับสถาปัตยกรรมเครื่องของคุณ) หลังจากดาวน์โหลดเสร็จสิ้น ให้เปิด Remote Desktop แล้วลากไฟล์ที่ดาวน์โหลดมาอัปโหลดไปยังอุปกรณ์ (เราจะถือว่าคุณยังไม่ได้แก้ไขไดเรกทอรีการอัปโหลดไฟล์ของ Remote Desktop) จากนั้นดำเนินการติดตั้งตามขั้นตอนต่อไปนี้ การติดตั้งนี้ไม่จำเป็นต้องทำซ้ำ


```{hint}
ไฟล์ที่คุณอัปโหลดผ่าน Remote Desktop จะถูกเก็บไว้ในไดเรกทอรี /data/usr/uploads โดยค่าเริ่มต้น
```

```bash
tar -C /data/usr/modules -xzf /data/usr/uploads/lamda-mod-debian-arm64-v8a.tar.gz
```

หลังจากรันคำสั่งเสร็จสิ้น การติดตั้งก็ถือว่าเสร็จสมบูรณ์แล้ว ต่อไปนี้จะแนะนำวิธีการเข้าสู่ระบบ

## การเข้าสู่สภาพแวดล้อม

หลังจากติดตั้งไฟล์ระบบของสภาพแวดล้อมที่เกี่ยวข้องแล้ว เราสามารถรันคำสั่งเพื่อเข้าสู่สภาพแวดล้อม Debian เสมือนได้ เรารู้ว่าแพ็คเกจสภาพแวดล้อม Debian เพิ่งถูกติดตั้งไปยัง `/data/usr/modules/debian` คุณสามารถรันคำสั่งต่อไปนี้เพื่อเข้าสู่เทอร์มินัลแบบโต้ตอบของ Debian

```bash
debian /bin/bash
```

หากคุณต้องการรันคำสั่งเพียงครั้งเดียว เช่น คำสั่ง `id` คุณสามารถใช้รูปแบบนี้ได้

```bash
debian /bin/bash -c id
```

```{attention}
รองรับการเข้าสู่สภาพแวดล้อมเสมือนได้เพียงหนึ่งอินสแตนซ์ในแต่ละครั้ง เมื่อคุณรัน debian /bin/bash และยังคงใช้งานอยู่ หากคุณพยายามรันคำสั่งนี้ในเทอร์มินัลอื่นอีกครั้ง ระบบจะส่งคืนข้อผิดพลาด จนกว่าคุณจะออกจาก debian /bin/bash ที่เริ่มทำงานก่อนหน้านี้
```

## การใช้งานขั้นสูง

เราจะแนะนำการใช้งานขั้นสูงแบบง่ายๆ ซึ่งหลังจากทำตามแล้ว คุณจะสามารถรันบริการ SSH ในสภาพแวดล้อมนี้ หรือรันสคริปต์ Python ได้ และจะไม่มีข้อจำกัดเรื่องจำนวนเซสชันอีกต่อไป ขั้นแรก ให้รันคำสั่งต่อไปนี้เพื่อเข้าสู่สภาพแวดล้อมเสมือน

```bash
debian /bin/bash
```

ตอนนี้ คุณควรจะอยู่ในสภาพแวดล้อมเสมือนแล้ว ให้ทำตามคำสั่งด้านล่างต่อไปนี้ โปรดระวังอย่าให้ตกหล่นแม้แต่คำสั่งเดียว

```bash
root@localhost: apt update
root@localhost: apt install -y openssh-server procps python3 python3-pip python3-dev
root@localhost: echo 'PermitRootLogin yes' >>/etc/ssh/sshd_config
root@localhost: echo 'StrictModes no' >>/etc/ssh/sshd_config
root@localhost: mkdir -p /run/sshd
root@localhost: # เปลี่ยนรหัสผ่าน root
root@localhost: echo root:lamda|chpasswd
root@localhost: # ออกจากสภาพแวดล้อม debian
root@localhost: exit
```

เอาล่ะ ตอนนี้คุณได้ติดตั้ง SSH และ Python เรียบร้อยแล้ว ถึงเวลาที่จะรันคำสั่งเพื่อเริ่มเซิร์ฟเวอร์ SSH ของเรา

```bash
debian /usr/sbin/sshd -D -e
```

คำสั่งข้างต้นจะทำให้เทอร์มินัลปัจจุบันของคุณค้าง เพื่อหลีกเลี่ยงปัญหานี้ เราสามารถใช้ cron job ที่มีในตัวเพื่อให้บริการ SSH ตัวอย่างนี้เริ่มทำงานอัตโนมัติพร้อมกับบริการ FIRERPA ต่อไป ให้รัน `crontab -e` และเขียนกฎต่อไปนี้ลงไป จากนั้นรีสตาร์ท FIRERPA หรืออุปกรณ์ สำหรับเอกสารการใช้งาน cron job คุณสามารถดูได้ที่บท `Cron Job`

```bash
@reboot debian /usr/sbin/sshd -D -e >/data/usr/sshd.log 2>&1
```

ตอนนี้ ให้รับที่อยู่ IP ของอุปกรณ์นี้ จากนั้นรันคำสั่งต่อไปนี้บนคอมพิวเตอร์ของคุณและป้อนรหัสผ่าน lamda เพื่อเข้าสู่ระบบ

```bash
ssh root@192.168.x.x
```

คุณสามารถพัฒนาความคิดสร้างสรรค์ต่างๆ ต่อไปเพื่อสร้างความเป็นไปได้ที่ไม่สิ้นสุด มันก็คือเซิร์ฟเวอร์ Linux ขนาดเล็กนั่นเอง