Difference between revisions of "TurtleBot"

From DCEwiki
Jump to: navigation, search
m
m
Line 1: Line 1:
 
[[Kategorie:DC]]
 
[[Kategorie:DC]]
 
[[Kategorie:Diskless]]
 
[[Kategorie:Diskless]]
 +
[[Kategorie:Manuály]]
 +
[[Kategorie:Debian]]
  
 
[https://www.turtlebot.com TurtleBot], je robotické zařízení, používané při výuce na Katedře kybernetiky. Jeho "mozkem" je Intel NUC, který sice může komunikovat přes ethernet, ale primárně komunikuje přes Wi-Fi.
 
[https://www.turtlebot.com TurtleBot], je robotické zařízení, používané při výuce na Katedře kybernetiky. Jeho "mozkem" je Intel NUC, který sice může komunikovat přes ethernet, ale primárně komunikuje přes Wi-Fi.

Revision as of 14:14, 6 August 2019


TurtleBot, je robotické zařízení, používané při výuce na Katedře kybernetiky. Jeho "mozkem" je Intel NUC, který sice může komunikovat přes ethernet, ale primárně komunikuje přes Wi-Fi.

Zařízení se dodává s předinstalovaným Ubuntu, ale v rámci sjednocení vývojového prostředí je potřeba na něm rozběhat stejnou diskless instalaci, jako v laboratořích.

Jelikož klasické PXE funguje pouze v rámci na ethernetu, jsou TurtleBoty vytvořené podobným způsobem, je virtuální stroje typu Half-Diskless. Rozdíl je pouze v tom, že se při spouštění nepoužívá virtuální disk publikovaný přes NFS, nýbrž lokální NVME disk.

Co to obnáší?

Příprava na diskless

Parametry NUC7i7DNKE Intel(R) Client Systems verze J85069-205

8 jader CPU Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
8 GB RAM (1x 8GB modul Kingston + volný slot)
Ethernet Connection I219-LM
01:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
~# lsmod | grep iw
iwlwifi               151552  0
cfg80211              598016  1 iwlwifi
~# cat /proc/partitions 
major minor  #blocks  name

 259        0  234431064 nvme0n1
 259        1     524288 nvme0n1p1 EFI flags boot, esp (zachovat)
 259        2  225643520 nvme0n1p2 ext4 Ubuntu (zmenšit) orig 220355, nově 200000
 259        3    8261632 nvme0n1p3 linux-swap (posunout)

NUC pro TurtleBoty je dodáván s předinstalovaným Ubuntu, proto bylo nutné:

  1. zmenšit diskový odddíl /dev/nvme0np2 na kterém je souborový systém ext4 s Ubuntu
  2. posunout diskový odddíl /dev/nvme0np3 na kterém je swap (ten bude využívat i disklessový OS)
  3. vytvořit nový diskový odddíl /dev/nvme0np4

Tento nově vytvořený diskový oddíl /dev/nvme0np4 byl naformátován na souborový systém Btrfs, aby bylo možné subvolume pro systém nainstalovaný přes debootstrap snapshotovat.

Instalace

Formátování fs, vytvoření subvolume,…

/mnt# debootstrap --verbose --include=firmware-iwlwifi,isc-dhcp-common,openssh-server,wpasupplicant,nfs-common --variant=minbase --components main,contrib,non-free --arch=amd64 unstable ./

…snapshot, bind {/dev,/proc,/sys}, chroot

Vytvoření ramdisku s podporou Wi-Fi

Editace grub.cfg

Automatizace procesu

oddíl /dev/nvme0np4

Úprava instalace disklessu

Export adresáře přes NFS

Zkopírování stávajícího obsahu fyzického stroje

Vytvoření zaváděcího disku

1, Zkopírování zaváděcího disku stroje k333-dhcp (soubor k333dhcp.img) do souboru k333stu1.img

k333-lab (NFS) :/srv/boot# cp k333dhcp.img k333stu1.img

2, Připojení souboru k333stu1.img přes losetup na loop0

losetup /dev/loop0 /srv/boot/k333stu1.img

3, Mount diskového oddílu s jádrem a soubory zavaděče

k333-lab (NFS) :~# mount /dev/loop0 /mnt -o offset=$((2048*512))
Poznámka Při namountování musí být použit offset!

4, Zkopírování stávajícího ramdisku a jádra. A úprava souboru /mnt/grub/grub.cfg