[HSŁ] Przypomnienie: jutro spotkanie na Mumble!

Rafał Kołucki BluRaf w gmx.com
Pią, 17 Kwi 2020, 22:16:58 CEST


Przeklejka z meetup.com - spotkanie jutro (sobota, 18 kwietnia o 17:00
na Mumble junkcc.net)
https://www.meetup.com/pl-PL/Hakierspejs-%C5%81od%C5%BA/events/270057964/

---

Tak jak ostatnio i przedostatnio, zapraszamy na rozmowę na naszym
serwerze Mumble! Jeżeli nie masz zaufania do swojej konfiguracji audio,
pamiętaj żeby włączyć tryb "push to talk" ;)

Spotkanie spotkania z założenia trwają po 5h, podczas których wejdziemy
głębiej w jeden z proponowanych tematów - zależnie od tego co nas
zainteresuje. W tym tygodniu mamy takie propozycje:

1. LFS i cross compiling,
2. Prawilne konfigurowanie VIM-a,
3. Wspólne haczenie w assemblerze

Postaramy się zachować wspólnie napisaną na Etherpadzie notatkę ze
spotkania. Jeśli chcesz ogarnąć współdzielenie terminala, przyjrzyj się
projektowi tmate: https://tmate.io/

Potrzebujesz więcej informacji? Skontaktuj się z nami na czacie lub
mailowo. Szczegóły znajdziesz tutaj:

https://lodz.hackerspace.pl/

Więcej szczegółów uzgodnimy na naszym kanale Telegramowym:

https://t.me/hakierspejs

---

Wracając do tematu Linux From Scratch: posprzątałem w logu z ostatniej
sesji, więc na spotkaniu będziemy mogli dalej zanudzać się na śmierć
obserwowaniem logów z Make.

Log w załączniku, dla pewności przed spotkaniem przebuduję całość i
zabawę zaczniemy od budowania u-boota.

Dla przypomnienia: Na ostatnim spotkaniu zaczęliśmy budować minimalny
system na komputer jednopłytkowy na ARM-ie (Olimex A20-OLinuXino-LIME) z
dodatkowym wyzwaniem ode mnie: brakiem GPL-a w userlandzie - tak po prostu.

Do zobaczenia jutro!

--
Rafał Kołucki
https://kolucki.pl/

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments
-------------- następna część ---------
# tl;dr to co w http://clfs.org/view/clfs-embedded/arm/ ale z toybox zamiast busybox
# oraz ze zautomatyzowanym budowaniem toolchaina

export WORKDIR=`pwd`

# 1) przygotowanie toolchaina
# 1.1) pobranie kernela (dla headerków) i generatora toolchaina

git clone https://github.com/richfelker/musl-cross-make.git
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.5.tar.xz
tar xf linux-5.6.5.tar.xz 
ln -s `pwd`/linux-5.6.5 musl-cross-make/linux-5.6.5

# 1.2) zbudowanie tymczasowego toolchaina dla hosta

cd musl-cross-make/
cat >config.mak <EOF
TARGET = x86_64-linux-musl
LINUX_VER = 5.6.5
EOF
make -j4
make OUTPUT=${WORKDIR}/x86_64-linux-musl-dirty install

# 1.3) zbudowanie właściwego toolchaina

cd ..
export PATH=${WORKDIR}/x86_64-linux-musl-dirty/bin:$PATH
export CROSS_COMPILE=x86_64-linux-musl-

cd musl-cross-make/
make distclean
cat >config.mak <EOF
TARGET = arm-linux-musleabihf
GCC_CONFIG += --with-cpu=cortex-a7 --with-float=hard --with-fpu=neon-vfpv4
LINUX_VER = 5.6.4
EOF
make -j4
make OUTPUT=${WORKDIR}/arm-cortexa7-linux-musleabihf install

# 2) Podstawowa struktura katalogów

mkdir -pv ${WORKDIR}/targetfs/{bin,boot,dev,etc,home,lib/{firmware,modules}}
export WORKDIR=`pwd`
mkdir -pv ${WORKDIR}/targetfs/{bin,boot,dev,etc,home,lib/{firmware,modules}}
mkdir -pv ${WORKDIR}/targetfs/{mnt,opt,proc,sbin,srv,sys}
mkdir -pv ${WORKDIR}/targetfs/var/{cache,lib,local,lock,log,opt,run,spool}
install -dv -m 0750 ${WORKDIR}/targetfs/root
install -dv -m 1777 ${WORKDIR}/targetfs/{var/,}tmp
mkdir -pv ${WORKDIR}/targetfs/usr/{,local/}{bin,include,lib,sbin,share,src}
cd targetfs/
ls
ln -svf ../proc/mounts ${WORKDIR}/targetfs/etc/mtab

cat > ${WORKDIR}/targetfs/etc/passwd << "EOF"
root::0:0:root:/root:/bin/ash
EOF

cat > ${WORKDIR}/targetfs/etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
EOF

touch ${WORKDIR}/targetfs/var/log/lastlog
chmod -v 664 ${WORKDIR}/targetfs/var/log/lastlog

# 3) Zbudowanie kernela
sudo apt install bc curl gcc git libssl-dev libncurses5-dev lzop make u-boot-tools flex bison

cd linux-5.6.4/
make mrproper
make sunxi_defconfig
make menuconfig
time make -j4

make INSTALL_MOD_PATH=${WORKDIR}/targetfs modules_install
make INSTALL_PATH=${WORKDIR}/targetfs/boot install
make INSTALL_PATH=${WORKDIR}/targetfs/boot dtbs_install

# 4) Podstawowe libki

# libc
cd ..
cd musl-1.2.0
./configure --prefix=/ --disable-static --target=arm-linux-musleabihf
make
DESTDIR=${WORKDIR}/targetfs make install-libs

# libgcc_s
cd ${WORKDIR}/arm-cortexa7-linux-musleabihf/arm-linux-musleabihf/lib/
cp libgcc_s.so.1 ${WORKDIR}/targetfs/lib/

5) Toybox

cd ${WORKDIR}
wget https://github.com/landley/toybox/archive/0.8.2.tar.gz
tar xf 0.8.2.tar.gz

cd toybox-0.8.2
LD_FLAGS="--static" make defconfig toybox
PREFIX=${WORKDIR}/targetfs make install

6) fstab

cat > ${WORKDIR}/targetfs/etc/fstab << "EOF"
# file-system  mount-point  type   options          dump  fsck

EOF

# kontynuować od http://clfs.org/view/clfs-embedded/arm/bootable/bootloaders.html


Więcej informacji o liście Lodz