This commit is contained in:
Michal Moskal 2019-12-10 09:03:33 -08:00
Родитель 6819c624ec
Коммит b29f4882f5
8 изменённых файлов: 222 добавлений и 32 удалений

Просмотреть файл

@ -12,6 +12,7 @@ RUN curl https://deb.nodesource.com/node_6.x/pool/main/n/nodejs/nodejs_6.11.0-1n
RUN apt-get update
RUN apt-get install mtools cpio bc p7zip-full squashfs-tools
# RPI0
RUN mkdir -p /picore/kernel
WORKDIR /picore/kernel
@ -41,8 +42,42 @@ WORKDIR /picore
RUN rm -rf img
RUN mkdir rootfs
RUN cd rootfs && zcat ../boot/9.0.3.gz | cpio -i -H newc -d
RUN mkdir rootfsv7
RUN cd rootfsv7 && zcat ../boot/9.0.3v7.gz | cpio -i -H newc -d
# RPI3
RUN mkdir -p /picore/kernel3
WORKDIR /picore/kernel3
RUN curl http://www.tinycorelinux.net/10.x/armv7/releases/RPi/src/kernel/linux-rpi-4.19.58.tar.xz > linux-rpi.tar.xz \
&& tar xf linux-rpi.tar.xz \
&& mv linux-rpi-4.19.58 linux-rpi \
&& rm linux-rpi.tar.xz
RUN curl http://www.tinycorelinux.net/10.x/armv7/releases/RPi/src/kernel/4.19.58-piCore-v7.config.xz | xzcat > linux-rpi/.config
RUN curl http://www.tinycorelinux.net/10.x/armv7/releases/RPi/src/kernel/4.19.58-piCore-v7_Module.symvers.xz | xzcat > linux-rpi/Module.symvers
RUN curl http://www.tinycorelinux.net/10.x/armv7/releases/RPi/src/kernel/4.19.58-piCore-v7_System.map.xz | xzcat > linux-rpi/System.map
WORKDIR /picore/kernel3/linux-rpi
RUN apt-get update
RUN apt-get install -y bison flex libssl-dev
RUN make ARCH=arm CROSS_COMPILE=/rpxc/bin/arm-linux-gnueabihf- modules_prepare
RUN echo "#!/bin/sh" > mkusb.sh
RUN echo "make ARCH=arm CROSS_COMPILE=/rpxc/bin/arm-linux-gnueabihf- SUBDIRS=drivers/usb -j10 modules" >> mkusb.sh
RUN chmod +x mkusb.sh
RUN ./mkusb.sh
RUN mkdir /picore/img3
WORKDIR /picore/img3
RUN curl http://www.tinycorelinux.net/10.x/armv7/test_relases/RPi/piCore-10.0beta12b.zip > picore.zip
RUN 7z x picore.zip
RUN mkdir /picore/boot3
RUN mcopy -s -i piCore-10.0beta12b.img@@4096K ::* ../boot3
WORKDIR /picore
RUN rm -rf img
RUN mkdir rootfs3
RUN cd rootfs3 && zcat ../boot3/10.0beta12bv7.gz | cpio -i -H newc -d
# Generic
WORKDIR /picore
RUN git clone https://github.com/WiringPi/WiringPi

Просмотреть файл

@ -1,3 +1,3 @@
#!/bin/sh
docker build -t pext/rpi:alsa --squash -f Dockerfile .
docker build -t pext/rpi:rpi3 --squash -f Dockerfile .

Просмотреть файл

@ -3,12 +3,12 @@
# Some settings may impact device functionality. See link above for details
[PI0]
initramfs 9.0.3.gz followkernel
initramfs rootfs.gz followkernel
kernel kernel4922.img
cmdline cmdline.txt
[PI1]
initramfs 9.0.3.gz followkernel
initramfs rootfs.gz followkernel
kernel kernel4922.img
cmdline cmdline.txt

1
image/boot3/cmdline3.txt Normal file
Просмотреть файл

@ -0,0 +1 @@
zswap.compressor=lz4 zswap.zpool=z3fold dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/ram0 elevator=deadline rootwait quiet nortc loglevel=3 noembed

84
image/boot3/config.txt Normal file
Просмотреть файл

@ -0,0 +1,84 @@
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
[PI0]
initramfs 10.0beta5a.gz followkernel
kernel kernel41442.img
cmdline cmdline.txt
[PI1]
initramfs 10.0beta5a.gz followkernel
kernel kernel41442.img
cmdline cmdline.txt
[PI2]
initramfs 10.0beta12bv7.gz followkernel
kernel kernel41913v7.img
cmdline cmdline.txt
[PI3]
initramfs rootfs.gz followkernel
kernel kernel41913v7.img
cmdline cmdline3.txt
[ALL]
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
#----------------------------------------------------
# Enable peripheral buses
dtparam=i2c=on,spi=on,i2s=on
# Enable onboard audio
dtparam=audio=on
# Enable serial console
enable_uart=1
[PI3]
dtoverlay=pi3-disable-bt
dtoverlay=dwc2
[ALL]

Просмотреть файл

@ -1,15 +1,23 @@
#!/bin/sh
TCZ="gdb alsa-modules-4.9.22-piCore alsa-oss alsa-plugins alsa alsa-utils libasound libasound-dev"
TCZ_C="alsa-plugins alsa alsa-utils libasound libasound-dev"
TCZ="gdb alsa-modules-4.9.22-piCore alsa-oss $TCZ_C"
TCZ3="alsa-modules-4.19.58-piCore-v7 $TCZ_C"
f="$1"
if [ "X$f" = X ] ; then
mkdir -p ../built/tcz
mkdir -p ../built/tcz3
for t in $TCZ ; do
test -f ../built/tcz/$t.tcz || curl http://www.tinycorelinux.net/9.x/armv6/tcz/$t.tcz > ../built/tcz/$t.tcz
done
rm -rf ../built/boot
for t in $TCZ3 ; do
test -f ../built/tcz3/$t.tcz || curl http://www.tinycorelinux.net/10.x/armv7/tcz/$t.tcz > ../built/tcz3/$t.tcz
done
cp ../built/tcz{,3}/gdb.tcz
rm -rf ../built/boot{,3}
f=/build/image/inner.sh
fi
docker run -i -t --rm -v `cd .. && pwd`:/build pext/rpi:alsa "$f"
docker run -i -t --rm -v `cd .. && pwd`:/build pext/rpi:rpi3 "$f"

Просмотреть файл

@ -5,47 +5,59 @@ set -ex
cd /build/uf2daemon
make
cd /picore/boot
for suff in "" "3" ; do
k=4.9.22-piCore
if [ "X$suff" = "X3" ]; then
k=4.19.13-piCore-v7
fi
cd /picore/boot$suff
# remove stuff we don't support yet anyway
rm *v7* *_cd.* *_x.* *_db.*
# overlay files
cp -r /build/image/boot/* .
cp -r /build/image/boot$suff/* .
# extract TCZs
cd /picore
rm -rf sq
mkdir sq
for f in /build/built/tcz/*.tcz ; do
for f in /build/built/tcz$suff/*.tcz ; do
unsquashfs $f
cp -r squashfs-root/* sq/
rm -rf squashfs-root
done
cp sq/usr/local/bin/gdbserver rootfs/usr/bin/
cp -r sq/lib rootfs/
r=rootfs$suff
cp sq/usr/local/bin/gdbserver $r/usr/bin/
cp -r sq/lib $r/
# copy alsa stuff
mkdir -p rootfs/usr/local/bin/ rootfs/usr/local/share/ rootfs/usr/local/lib/ rootfs/usr/local/sbin/
cp -ar sq/usr/local/bin/a* rootfs/usr/local/bin/
cp -ar sq/usr/local/sbin rootfs/usr/local/
cp -ar sq/usr/local/lib/lib* sq/usr/local/lib/alsa* rootfs/usr/local/lib/
cp -ar sq/usr/local/share/alsa rootfs/usr/local/share/
for mod in snd-pcm-oss snd-mixer-oss snd-soc-core snd-bcm2835 snd-pcm-dmaengine snd-pcm snd-timer snd-compress snd ; do
p=`find sq -name $mod.ko`
cp $p rootfs/lib/modules/4.9.22-piCore/kernel/drivers/
done
mkdir -p $r/usr/local/bin/ $r/usr/local/share/ $r/usr/local/lib/ $r/usr/local/sbin/
cp -ar sq/usr/local/bin/a* $r/usr/local/bin/
cp -ar sq/usr/local/sbin $r/usr/local/
cp -ar sq/usr/local/lib/lib* sq/usr/local/lib/alsa* $r/usr/local/lib/
cp -ar sq/usr/local/share/alsa $r/usr/local/share/
#cp -r sq/* rootfs/
if [ "X$suff" = "X3" ]; then
cp `find sq -name snd-\*.ko` $r/lib/modules/$k/kernel/drivers/
else
for mod in snd-soc-core snd-bcm2835 snd-pcm-dmaengine snd-pcm snd-timer snd-compress snd ; do
p=`find sq -name $mod.ko`
cp $p $r/lib/modules/$k/kernel/drivers/
done
fi
#cp -r sq/* $r/
#cp -ra sq /build/
cp -r /build/image/rootfs/* rootfs/
cp /build/uf2daemon/uf2d rootfs/sbin/
cp -r /build/image/rootfs/* $r/
cp /build/uf2daemon/uf2d $r/sbin/
cd rootfs
patch -p1 < /build/image/rootfs.patch
cd $r
patch -p1 < /build/image/rootfs$suff.patch
# kernel modules
cd /picore/kernel/linux-rpi
cd /picore/kernel$suff/linux-rpi
patch drivers/usb/gadget/function/f_mass_storage.c < /build/kernel/f_mass_storage.c.sync.patch
./mkusb.sh
dst=/picore/rootfs/lib/modules/4.9.22-piCore/kernel
dst=/picore/$r/lib/modules/$k/kernel
for d in drivers/usb/dwc2 drivers/usb/gadget \
drivers/usb/gadget/legacy drivers/usb/gadget/function drivers/usb/gadget/udc ; do
@ -54,9 +66,11 @@ for d in drivers/usb/dwc2 drivers/usb/gadget \
done
# create new image
cd /picore/rootfs
find | cpio -o -R 0:0 -H newc | gzip -4 > ../boot/9.0.3.gz
cd /picore/$r
find | cpio -o -R 0:0 -H newc | gzip -4 > ../boot$suff/rootfs.gz
# Copy out results to host
mkdir -p /build/built
cp -r /picore/boot /build/built/boot
cp -r /picore/boot$suff /build/built/boot$suff
done

48
image/rootfs3.patch Normal file
Просмотреть файл

@ -0,0 +1,48 @@
Only in orig/etc/init.d/: busybox-aliases
Only in orig/etc/init.d/: dhcp.sh
Only in orig/etc/init.d/: rc.shutdown
Only in orig/etc/init.d/: rcS
Only in orig/etc/init.d/: services
Only in orig/etc/init.d/: settime.sh
diff -ur orig/etc/init.d/tc-config rootfs/etc/init.d/tc-config
--- orig/etc/init.d/tc-config 2018-06-15 09:35:38.000000000 -0700
+++ rootfs/etc/init.d/tc-config 2018-06-16 23:20:09.000000000 -0700
@@ -25,8 +25,8 @@
# Main
-#clear
-echo "${GREEN}Booting ${YELLOW}Core $VERSION ${NORMAL}"
+#clear
+echo "${GREEN}Booting ${YELLOW}Core $VERSION - Arcade Pi ${NORMAL}"
echo "${GREEN}Running Linux Kernel ${YELLOW}$KERNEL${GREEN}.${NORMAL}"
export PATH=/usr/local/sbin:/usr/local/bin:"$PATH"
@@ -102,6 +102,8 @@
done
fi
+depmod -a
+
# Start Udev to populate /dev and handle hotplug events
echo -n "${BLUE}Starting udev daemon for hotplug support...${NORMAL}"
#/sbin/udevd --daemon 2>/dev/null >/dev/null
@@ -536,6 +538,8 @@
sync
wait $fstab_pid
+
+if false ; then
MSSG="${BLUE}Loading extensions...${NORMAL}"
if [ -n "$SHOWAPPS" ]; then
touch /etc/sysconfig/showapps
@@ -557,6 +561,7 @@
echo -n "${RED}Press Enter key.${NORMAL}"; read ans
fi
fi
+fi
[ -n "$KEYMAP" ] || KEYMAP="us"
if [ -f "/usr/share/kmap/$KEYMAP.kmap" ]; then
Only in orig/etc/init.d/: tc-restore.sh
Only in orig/etc/init.d/: tc_noscan.lst