OK. I'm trying to build Sculpt. I'm a naive newb, so I appreciate your patience as I come up to speed.
Below are the details of my exploration into this new world. I've made progress through trial and error, but I've hit the following show stopper (I can't riddle out how to get around it). I definitely don't know the environment well enough yet:
make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
---------- Error: recipe for 'pkg/bsd_audio_drv' not found - unable to guess version make: *** [Makefile:431: run/sculpt] Error 1 make: Leaving directory '/home/wsenn/genode/build/x86_64' ----------
I've searched and seen something about audio and VM not being supported, which is fine by me. I don't need audio in the VM, I'm just trying to convince myself that I can build an ISO :).
Based on correspondence with Norman, I'm starting with Build a Bootable Image.
My dev/test setup: 2012 Macbook Pro running Mojave 10.14.6, 16GB RAM, i7 core 2.6 ghz Virtualbox 6.1.40 running Debian 11.6 "Bullseye" w/guest additions enabled for sharing and clipboard with my Mac
Below is the process I followed, in detail (it did take me a bit to find the recommended setup - expect et al, but when I did, I just installed everything in that list). Feel free to skip - it's long...
# Download 11.6 "bullseye" netinst aria2c https://gemmei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-11.6.0-a...
Virtualbox 6.1.40 on my MacBook Pro 8GB RAM 2 CPUs 20GB HDD ~/shared attach ISO
# do text mode install * Debian desktop environment * Cinnamon (relatively lightweight and works) * standard system utilities
# add user to sudoers su - visudo add NOPASSWD to sudo group line... NOPASSWD:ALL
# add user to sudo group usermod -a -G sudo wsenn logout and back in (actually required a restart)
# update apt package list sudo apt update
# install vbox dependencies: # dkms, linux-headers # install basic apps for dev: # git-gui and vim # install build system dependencies: # xref: Recommended development environment in # Genode Foundations Getting Started # qemu xorriso gdisk e2tools byacc autoconf autogen # bison flex expect gperf libxml2-utils subversion xsltproc
sudo apt install dkms linux-headers-$(uname -r) \ git-gui vim \ qemu xorriso gdisk e2tools byacc autoconf \ autogen bison flex expect gperf libxml2-utils \ subversion xsltproc
# as regular user set vim as default editor sudo update-alternatives --config editor # pick vim.basic
# turn off mouse nonsense in vim vi ~/.vimrc set mouse-=a
# configure guest additions in vbox - Devices->Insert Guest Additions CD Image
# mount the cd sudo mount /dev/cdrom /mnt cd /mnt sudo sh ./VBoxLinuxAdditions.run mkdir ~/shared
sudo vi /etc/fstab shared /home/wsenn/shared vboxsf defaults 0 0
sudo vi /etc/modules vboxsf
sudo shutdown -r now
ls ~/shared
Enable shared clipboard - both directions
# install the toolchain in /usr/local/genode cd ~/Downloads wget -O genode-toolchain-21.05-x86_64.tar.xz https://sourceforge.net/projects/genode/files/genode-toolchain/21.05/genode-... sudo tar xvPf genode-toolchain-21.05-x86_64.tar.xz
# clone the source and switch to the 22.10 release branch cd git clone https://github.com/genodelabs/genode.git cd genode git checkout -b sculpt-22.10 sculpt-22.10
# get nova kernel files ./tool/depot/download genodelabs/bin/x86_64/base-nova/2022-10-11
# get other dependencies ./tool/depot/download genodelabs/pkg/x86_64/sculpt/2022-10-13
------------ download genodelabs/src/vim-minimal/2022-08-30.tar.xz download genodelabs/src/vim-minimal/2022-08-30.tar.xz.sig xz: (stdin): Unexpected end of input tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now make[1]: *** [/home/wsenn/genode/tool/depot/mk/downloader:45: /home/wsenn/genode/depot/genodelabs/src/vim-minimal/2022-08-30] Error 2 ------------
reran ./tool/depot/download genodelabs/pkg/x86_64/sculpt/2022-10-13 ./tool/depot/download genodelabs/pkg/x86_64/drivers_managed-pc/2022-10-11 ./tool/depot/download genodelabs/pkg/x86_64/wifi/2022-10-13 ./tool/depot/download genodelabs/bin/x86_64/ipxe_nic_drv/2022-10-11
./tool/create_builddir x86_64
vi build/x86_64/etc/build.conf # enable parallel thread in make MAKE += -j4
# enable ccache CCACHE := yes
# enable depot updates RUN_OPT += --depot-auto-update
# change iso to disk in QEMU_RUN_OPT QEMU_RUN_OPT := --include power_on/qemu --include log/qemu --include image/iso
# enable libports, ports, dde_linux, dde_rump, gems, pc, and dde_ipxe repos
# prep grub ./tool/ports/prepare_port grub2
# try the build make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
---------- Error: Ports not prepared or outdated: bash coreutils curl dde_ipxe dde_linux dde_rump e2fsprogs-lib gnupg jitterentropy libarchive libc libgcrypt libnl libpng libssh linux ncurses nova openssl stb vim wpa_supplicant x86emu xz zlib
You can prepare respectively update them as follows: /home/wsenn/genode/tool/ports/prepare_port bash coreutils curl dde_ipxe dde_linux dde_rump e2fsprogs-lib gnupg jitterentropy libarchive libc libgcrypt libnl libpng libssh linux ncurses nova openssl stb vim wpa_supplicant x86emu xz zlib
---------- ./tool/ports/prepare_port bash coreutils curl dde_ipxe dde_linux dde_rump e2fsprogs-lib gnupg jitterentropy libarchive libc libgcrypt libnl libpng libssh linux ncurses nova openssl stb vim wpa_supplicant x86emu xz zlib
# retry the build make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
---------- Error: Ports not prepared or outdated: linux-firmware ttf-bitstream-vera
You can prepare respectively update them as follows: /home/wsenn/genode/tool/ports/prepare_port linux-firmware ttf-bitstream-vera ----------
./tool/ports/prepare_port linux-firmware ttf-bitstream-vera
# retry the build make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
---------- /usr/bin/bash: /home/wsenn/genode/repos/base/../../tool/check_abi: /usr/bin/tclsh: bad interpreter: No such file or directory ---------- sudo ln -s /usr/bin/tclsh8.6 /usr/bin/tclsh
# retry the build make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
---------- Error: recipe for 'pkg/bsd_audio_drv' not found - unable to guess version make: *** [Makefile:431: run/sculpt] Error 1 make: Leaving directory '/home/wsenn/genode/build/x86_64' ----------
Dunno what to do about that.
make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
Error: recipe for 'pkg/bsd_audio_drv' not found - unable to guess version make: *** [Makefile:431: run/sculpt] Error 1 make: Leaving directory '/home/wsenn/genode/build/x86_64'
bsd_audio_drv is in the dde_bsd repo, did you try enabling that in your build.conf?
On 12/25/22 8:29 PM, Colin Parker wrote:
make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
Error: recipe for 'pkg/bsd_audio_drv' not found - unable to guess version make: *** [Makefile:431: run/sculpt] Error 1 make: Leaving directory '/home/wsenn/genode/build/x86_64'
bsd_audio_drv is in the dde_bsd repo, did you try enabling that in your build.conf?
Yeeha! That and a tweaked path:
vi ~/.bashrc export PATH=$PATH:/sbin
(needed for resize2fs) and I got an image that worked, yay!
I think I'll give it a shot on metal, next. Then I'll try doing the fancier build and tweaking on the wifi.
Thanks for the assist. I'm making progress.
Will
All,
I got the Sculpt 22.10 build working in Debian 11.6 Bullseye via VirtualBox. Now that I've successfully built the bootable image, burned it to USB, and deployed it successfully to my t430 a couple of times, I'll try doing the build on Debian running on the t430. Here's the cleaned up set of notes for posterity - I still see the tar issue with vim-minimal, but stuff seems to work at the end of the day.
# On the host (2012 Macbook Pro running Mojave w/Vbox 6.1.40), download 11.6 "bullseye" netinst aria2c https://gemmei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-11.6.0-a...
# Create a new debian virtualbox instance * 8GB RAM * 2 CPUs * 20GB HDD * attach ~/shared * attach debian-11.6.0-amd64-netinst.iso
# boot the cd and do text mode install * Debian desktop environment * Cinnamon (relatively lightweight and works) * standard system utilities
# boot debian and edit sudoers to not require a password su - visudo add NOPASSWD to sudo group line... NOPASSWD:ALL
# add user to sudo group usermod -a -G sudo wsenn logout and back in (actually required a restart)
# update apt package list and upgrade packages sudo apt update && sudo apt full-upgrade -y
# install basic dev tools (build-essential is already installed): # build-essential vim # install vbox dependencies: # dkms, linux-headers # install build system dependencies (gdisk is already installed): # xref: Genode Foundations - Getting Started # autoconf, autogen, bison, byacc, ccache, e2tools, expect, # flex, gdisk, git-gui, gperf, libsdl2-dev, # libxml2-utils, qemu, subversion, xorriso, and xsltproc # note: apt will ignore already installed packages # different base selections such as Debian Desktop vs Cinnamon # may result in those packages not being installed
sudo apt install build-essential vim \ dkms linux-headers-$(uname -r) \ autoconf autogen bison byacc ccache e2tools expect flex gdisk git-gui \ gperf libsdl2-dev libxml2-utils qemu subversion xorriso xsltproc
# as regular user set vim as default editor sudo update-alternatives --config editor # pick vim.basic
# turn off mouse nonsense in vim vi ~/.vimrc set mouse-=a
# add sbin to path for build resize2fs requirement vi .bashrc export PATH=$PATH:/sbin
# mount the cd and install guest additions # in vbox - Devices->Insert Guest Additions CD Image sudo mount /dev/cdrom /mnt cd /mnt sudo sh ./VBoxLinuxAdditions.run
# create a location to mount shared files mkdir ~/shared
# add it to fstab sudo vi /etc/fstab shared /home/wsenn/shared vboxsf defaults 0 0
# enable vbox module for sharing sudo vi /etc/modules vboxsf
# reboot sudo shutdown -r now
# test the share ls ~/shared
# in vbox Devices->Shared Clipboard->Bidirectional
# download the toolchain and install it in /usr/local/genode cd ~/Downloads wget -O genode-toolchain-21.05-x86_64.tar.xz https://sourceforge.net/projects/genode/files/genode-toolchain/21.05/genode-... sudo tar xvPf genode-toolchain-21.05-x86_64.tar.xz
# clone the source code and switch to the 22.10 release branch cd git clone https://github.com/genodelabs/genode.git cd genode git checkout -b sculpt-22.10 sculpt-22.10
# get nova kernel files ./tool/depot/download genodelabs/bin/x86_64/base-nova/2022-10-11
# get other dependencies ./tool/depot/download genodelabs/pkg/x86_64/sculpt/2022-10-13
------------ Error download genodelabs/src/vim-minimal/2022-08-30.tar.xz download genodelabs/src/vim-minimal/2022-08-30.tar.xz.sig xz: (stdin): Unexpected end of input tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now make[1]: *** [/home/wsenn/genode/tool/depot/mk/downloader:45: /home/wsenn/genode/depot/genodelabs/src/vim-minimal/2022-08-30] Error 2 ------------ Fix # rerun ./tool/depot/download genodelabs/pkg/x86_64/sculpt/2022-10-13
# continue adding the rest of the dependencies ./tool/depot/download genodelabs/pkg/x86_64/drivers_managed-pc/2022-10-11 \ genodelabs/pkg/x86_64/wifi/2022-10-13 \ genodelabs/bin/x86_64/ipxe_nic_drv/2022-10-11
# create the build dir ./tool/create_builddir x86_64
# edit the configuration vi build/x86_64/etc/build.conf
# enable parallel threads in make (wonder if I can bump this to -j8, maybe next go'round) MAKE += -j4
# enable ccache CCACHE := yes
# enable depot updates RUN_OPT += --depot-auto-update
# change iso to disk in QEMU_RUN_OPT QEMU_RUN_OPT := --include power_on/qemu --include log/qemu --include image/iso
# enable libports, ports, dde_linux, dde_rump, gems, pc, dde_bsd, and dde_ipxe repos
# prepare grub port ./tool/ports/prepare_port grub2
# prepare other ports ./tool/ports/prepare_port bash coreutils curl dde_ipxe dde_linux dde_rump e2fsprogs-lib gnupg jitterentropy libarchive libc libgcrypt libnl libpng libssh linux linux-firmware ncurses nova openssl stb ttf-bitstream-vera vim wpa_supplicant x86emu xz zlib
# build the image make -C build/x86_64 run/sculpt KERNEL=nova BOARD=pc
# success? yup... Created image file var/run/sculpt.img (29140kiB)
# attach usb to host, capture it in vbox
# figure out the usb device dmesg|grep sd ... [ 7754.230860] sd 3:0:0:0: [sdb] Attached SCSI removable disk
# write it sudo dd if=build/x86_64/var/run/sculpt.img of=/dev/sdb bs=1M conv=fsync
# test it in the t430 Works great!