====== Native Python auf EV3 mit VSCode ====== * https://education.lego.com/en-us/product-resources/mindstorms-ev3/teacher-resources/python-for-ev3 * SSH: user robot, password maker * hostnamectl set-hostname LEGO12 * WiFi-Daten in var/lib/connman * https://docs.pybricks.com/en/stable/ * Use ''dd'' with the ''conv=sparse'' option. It will seek instead of write. Exactly what we need ;-) /etc/wpa_supplicant/wpa_supplicant.conf #ctrl_interface=/var/run/wpa_supplicant #ctrl_interface_group=benutzergruppe # Die Gruppe muss natürlich angepasst werden eapol_version=1 # 0: Der Treiber des Interfaces kümmert sich um das Scannen von Netzen und die AP-Auswahl. # Dieser Modus sollte benutzt werden, wenn man eine Verschlüsselung auf ein Kabelnetzwerk legt. # 1: wpa_supplicant kümmert sich um das Scannen von Netzen und die AP-Auswahl. # 2: Fast wie 0, es wird aber mit Hilfe von Sicherheitsrichtlinien und der SSID zu APs verbunden (BSSID wird nicht unterstützt) # # Normalerweise funktioniert entweder Modus 1 oder Modus 2. ap_scan=1 network={ ssid="tech-lab" scan_ssid=1 psk="tech-lab" } Way better than stuff below (also, you could take the image and then zero is out while mounted as loopback, much quicker!) def cmd(c) puts c r = `#{c}` return r end raise "Provide hostname (like LEGO01)" unless $ARGV[0] hostname = $ARGV[0] img = "lego01.img" cmd("losetup -Pf #{img}") dev = cmd("losetup -j #{img}").split(":")[0] p2 = dev+"p2" cmd("mkdir -p p2") cmd("mount #{p2} p2") puts "Writing hostname #{hostname} to image" cmd("echo #{hostname} > p2/etc/hostname") cmd("umount p2") cmd("losetup -d ${dev}") puts "Image is ready. Write it with" puts "dd if=#{img} of=/dev/sdXXXX status=progress bs=1M conv=sparse" # Get Info sudo fdisk -lu lego12.img Disk lego12.img: 14.84 GiB, 15931539456 bytes, 31116288 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf5e5f871 Device Boot Start End Sectors Size Id Type lego12.img1 8192 106495 98304 48M b W95 FAT32 lego12.img2 106496 31116287 31009792 14.8G 83 Linux # Mount Partition, -o Start*512, --sizelimit Sectors*512 sudo losetup -o 54525952 -b 512 --sizelimit 15877013504 /dev/loop16 lego12.img # Check filesystem sudo e2fsck -f /dev/loop16 # Resize filesystem sudo resize2fs /dev/loop16 3750000 # Mount filesystem mount /dev/loop16 /mnt # Zero out disk dd if=/dev/zero of=zero.txt bs=1M status=progress # Truncate image (size obtained from target SD-Card with fdisk -lu /dev/sda) truncate -s 15634268160 lego12.img