From 2747e18b4b5de1f06580c318fc46914f45e3c5ad Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 17 Apr 2025 16:00:36 +0800 Subject: [PATCH 01/15] add kali_linux.config Signed-off-by: lindongping --- README.md | 16 ++ board/phytium/common/kali-archive-keyring.gpg | Bin 0 -> 2271 bytes .../kali-linux-additional_packages_list | 16 ++ .../common/kali-linux-package-installer | 164 +++++++++++ .../common/post-custom-skeleton-kali-linux.sh | 254 ++++++++++++++++++ configs/kali_linux.config | 1 + 6 files changed, 451 insertions(+) create mode 100644 board/phytium/common/kali-archive-keyring.gpg create mode 100644 board/phytium/common/kali-linux-additional_packages_list create mode 100755 board/phytium/common/kali-linux-package-installer create mode 100755 board/phytium/common/post-custom-skeleton-kali-linux.sh create mode 100644 configs/kali_linux.config diff --git a/README.md b/README.md index 4fad48c5..528e7eb0 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ Buildroot被设计为在x86 Linux系统上运行,结合其他因素,本仓 • Source fetching tools: – wget – git +• Kali Linux build tools: +- systemd-container +- eatmydata ``` 除此之外,还需要安装如下软件包: `$ sudo apt install debootstrap qemu-user-static binfmt-support debian-archive-keyring` @@ -179,6 +182,19 @@ pyjailhouse安装到/usr/lib/python3.11/site-packages, openamp_core0.elf安装到/lib/firmware,用户空间测试程序安装到/usr/bin。 关于openamp的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/open-amp` +### 支持Kali Linux +Kali Linux是基于Debian的Linux发行版,它被设计为用于数字取证的操作系统。 +本项目支持编译Kali Linux,要求编译主机为Ubuntu24或者Debian12,X86架构。 +如果需要编译Kali Linux请执行: +(1)使用phytiumpi_defconfig或者phytiumpi_desktop_defconfig作为基础配置项,合并支持Kali Linux的配置: +`./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/kali_linux.config` +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、sdcard.img 镜像位于output/images目录。 +(4)文件的安装路径 +关于Kali Linux的更多信息,请参考`https://www.kali.org/docs/` + ## 清理编译结果 (1)`$ make clean` 删除所有编译结果,包括output目录下的所有内容。当编译完一个文件系统后,编译另一个文件系统前,需要执行此命令。 diff --git a/board/phytium/common/kali-archive-keyring.gpg b/board/phytium/common/kali-archive-keyring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..ca4ff838dc50f6c1ce1a404225588fae813fbc5d GIT binary patch literal 2271 zcmV<52q5>F0u2ODRMaQ|5CEZie|~cCQt~PXpd~uM7R&ZFh?A51W<%+WJ1D%%;+m#f zqcpsHKp8V_;3iRPYS%uk8D&@4PiA4NhSd4d62r_b@)YaEoSJ|>`c(|=qNM-S%oi$-fXCm1s$ZzA zs0Fn6uXmPZP5DkT6wKcc9{5ni4Opl*_F#d~uho4IJ&GPPykA<(Lt7U&#n9~`)7l3Y zhEr)lUL(RtnxFCXP`)nrl*pPb_TTZpLDf;+JY$34JC6d1bCas7ru;L-&<4jOYE!z2 z&akYv{njCqv2U^Y^w={Uv*b#$=>ZcwsZ4?h%)muc2&(*Mnl%-$>RHanPB1cRa7C?k zK~Te5Ln*lG^|bYSGvN#Z7Fg}fhYn;@I8yf?K(S(SCyLLc)YKx9t4qY%^I6<%T}`B7$D($3Gv%D!fbqf0?KB+OkSDED}q6qu&tyr63A?NnmzXV}@K|tlvf(E9`N%2-7 zw@axbxlN02TBi-a-0eSM2fer9KXR=R$!{nVy#V|KkU$Oua_{BHoGNtHUMB#SQoC&` zqLCoe&60Iuy%zux0RRECCQD&#X&_8#ZgqGdQe|*&b7^#Ma(N&;WMy_`Y(Q&aY-uiU za%Vn?0#yVP0SW*=0viJc3ke7Z0|EvW2m%QT3j`Jd0|5da0Rk6*79j*g#!)(sPqWhq zb@y29L{IR2jSKb#0%gEzK?MmM4=|Yk3JDPHL{IR2jSKc0U=RK#YS12AQGJawYT7|Y z6khF|%w0wbOlC?5rifPXMe4_%2uNX&sLV`J&|Nhixf|=8i~7&z=Uh%)Z3kwvQ~gyf zaR29%0p}*FgQ|f@p?PW)n`!@_>oLZ96YN=rgxTj3*C`D;ZPbXKhPb>(Qrju|qO3>3 zEB}G219tidU4N?ldsBtk#w8I6I_xsb+xyNj)8Ue1nVOcGi-*0UYrj7=31Oxl@RJVa z`^I{L@=^$HAr;t@bDx21o{b0TUg!S53m4AqNd=PEi>j45SJmCu*&JItwd^T=aJ&~t zd%2%?yv75ObGCkqGiN!V7h(|;zGNkH$y&V(*Zh^$<6aMY%(jTP8-;MXX>_j8E zC)`D$fU)GWZ7jCY<0Jz*N$Tt33Dj&PWk^jRB*EyHMjV!TNNqO&#II`p-6J(D++!ZCCnlBBg7q>Z(CPI*r%{Mz6%hb6OwOkk3kz4VTlMKY z9hhlubFiZXs)H4{lspE@w6=U@dWUqs2^IidFGk-t?G*n`i~GL5_}!uyMG|F!#lbw@8)~c;pKhnb0 zaF{mO3X5aj!3#U?U_f->Js+F3bJ|l|fYWIPX}F z<-6p2Kgit;0Cx*rKYEttM(*#b)J;&w`>W#wMU(%0nK^^(JYtzj z^9Q68@Ao8jw9c{yFmnZ6|G@y796wm6dl?VZaY<`HzD?fE7|^1BHCu$VC#O_oy{4iL z;9D@`_Wm|-g?#r%vrA6OtDf;H@0C?m*9?*arEvz!JJuzc zG(p1V0RMsDyz6mVI~B?mmDa>RjCjxCtw*1lKD&JmD~~kbC{%5V`I0L*AOmq;IpqR_ zNE&o+Y#4vwe-!8gtyBLTL|9C&z?hENB~tz%V?uY_j57cc0RRDs0z3p50SW*n0vik# zAp}ImQ96!Kv(pH5_gL*jPw;(>3-$#9Wx#4u1qmDvFsc9w2@vf>Pw;(>3-(Uj5C31+ z)Cy}Jx{49aifPV2Vv`@5S_iWN4BuVeqHU%=c2Y&LC+t0OQafD-M{@Fj$>Z%Ebf4rY z{Cg(e5~buI4$o@g4n*)E4wX1PQ%(oh0P9Z$0Zsy`sC5YH?w*u;hM$>p?7+q11Ceg^ zy{Iv0!~wT~JsZBRS`a_hx`8VdJ!Nawghq_HnYw|Qx&Fg%1>C%xNN1c!8U^BhEnQ#D zw`tD9ag%NG{A}h|^VU#UyR*K~+91_TJgbsXy_RUJrsWC{tFPh}R^A5ijm?0|>l^!z z0IOsF^@j6TD9`fR$cBx|J9K1AsrF_^nFK*lJhP4t63%QA-r5v&q^fn)s2q(=4@ThA zeiZ>N$-=Me@O2BDpcZn_2QIByqX2$-^3zv!qxV^X{$|Cbg%Rkdma#RUP$ywSm#WP@ zh}u0mbo5xD;s(Uw%d_y!y^BQULeJZa8;Bb${^|P|+BjxHr0g@iu$$CTj7Q=`_zYfx taoZeM+sX51>z=Qm+3-ozFxnWWRx$EJU?gj1D*o;&e`n;r0hyoZOh|NSMU(&l literal 0 HcmV?d00001 diff --git a/board/phytium/common/kali-linux-additional_packages_list b/board/phytium/common/kali-linux-additional_packages_list new file mode 100644 index 00000000..6afd56d9 --- /dev/null +++ b/board/phytium/common/kali-linux-additional_packages_list @@ -0,0 +1,16 @@ +# additional packages list for SDK main userland gathered from main repo +additional_full_packages_list=" python3-pygame python3-tk thonny python3-pgzero python3-serial debian-reference-en dillo python3-pip python3-numpy pypy alacarte rc-gui sense-hat tree libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr geany python3-spidev python3-twython python3-smbus python3-flask pprompt piwiz" + + +additional_desktop_packages_list="tigervnc-standalone-server vlc rfkill blueman bluetooth fbset audacity network-manager-gnome" + +# for Lite userland gathered from main repo +additional_base_packages_list="systemd-timesyncd ssh sudo psmisc strace ncdu parted build-essential bash-completion gdb pkg-config python-is-python3 \ +v4l-utils python3-gpiozero avahi-daemon lua5.1 luajit hardlink curl fake-hwclock nfs-common usbutils dosfstools \ +dphys-swapfile apt-listchanges usb-modeswitch libmtp-runtime rsync htop man-db rng-tools \ +ssh-import-id ethtool ntfs-3g pciutils udisks2 zip p7zip-full file \ +cifs-utils mkvtoolnix wpasupplicant wireless-tools net-tools \ +vim locales network-manager jq git libglib2.0-dev libxext-dev libxv-dev ffmpeg dkms \ +libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools \ +gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-pulseaudio gstreamer1.0-tools kali-menu kali-defaults" + diff --git a/board/phytium/common/kali-linux-package-installer b/board/phytium/common/kali-linux-package-installer new file mode 100755 index 00000000..6d4b3086 --- /dev/null +++ b/board/phytium/common/kali-linux-package-installer @@ -0,0 +1,164 @@ +#!/bin/bash + +DISTROTYPE=$3 +DISTROSCALE=$5 +tarch=$1 + +do_distrorfs_second_stage() { + [ -f /etc/buildinfo -a ! -f /proc/uptime ] && return + packages_list=/usr/aptpkg/$4 + . $packages_list + + echo "1." $1 + echo "2." $2 + echo "3." $3 + echo "4." $4 + echo "5." $5 + echo "6." $6 + + if [ -d /etc/shadow ]; then + cd /etc + chmod u=rw,g=r,o=r shadow + fi + + # set default hostname + echo localhost > /etc/hostname + + # set apt sources list to install additional packages + asl=/etc/apt/sources.list + rm -f $asl + cat <<-EOF > $asl + deb http://mirrors.tuna.tsinghua.edu.cn/kali/ $2 main contrib non-free non-free-firmware + EOF + chmod +777 /tmp + apt update + DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C \ + apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" update || exit 1 + + DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C \ + apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade || exit 1 + echo upgraded + + export LC_ALL=C LANGUAGE=C LANG=C + + echo installing base packages: $pkglist + for pkg in $additional_base_packages_list; do + echo Installing $pkg ... + DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + done + + + echo installed additional packages. + if [ $6 = desktop ]; then + for pkg in xfce4; do + DEBIAN_FRONTEND=noninteractive apt -y install $pkg || true + done + + rm -f /etc/systemd/system/display-manager.service + sed -i "s/gdm3/lightdm/" /etc/X11/default-display-manager + echo '[SeatDefaults]' >> /etc/lightdm/lightdm.conf + echo 'greeter-session=lightdm-gtk-greeter' >> /etc/lightdm/lightdm.conf + echo 'user-session=xfce' >> /etc/lightdm/lightdm.conf + + echo installing desktop packages list packages: $pkglist + for pkg in $additional_desktop_packages_list; do + echo Installing $pkg ... + DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + done + + # remove plymouth + DEBIAN_FRONTEND=noninteractive apt -y remove plymouth || true + echo 'root' >> /etc/deniedusers + chmod 600 /etc/deniedusers + echo 'auth required pam_listfile.so onerr=succeed item=user sense=deny file=/etc/deniedusers' >> /etc/pam.d/lightdm + + # set the name of the sound output devices + echo 'update-sink-proplist 1 device.description=Headphone' >> /etc/pulse/default.pa + echo 'update-sink-proplist 0 device.description=HDMI' >> /etc/pulse/default.pa + echo 'set-default-sink 1' >> /etc/pulse/default.pa + + # touch .desktop_firstrun + touch /root/.desktop_firstlogin + + #cups disable TLSv1.0 and TLSv1.1 + if [ -f /etc/cups/cupsd.conf ]; then + echo "SSLOptions MinTLS1.2" >> /etc/cups/cupsd.conf + fi + + # set the configuration of vim + echo 'set mouse-=a' >> /root/.vimrc + echo 'syntax on' >> /root/.vimrc + + echo remove packages. + DEBIAN_FRONTEND=noninteractive apt-get -y remove --purge parole || exit 1 + fi + + # set timezone + echo "Asia/Shanghai" > /etc/timezone + rm /etc/localtime + dpkg-reconfigure -f noninteractive tzdata + + # set kernel loglevel + sed -i 's/#kernel.printk = 3 4 1 3/kernel.printk = 4 4 1 7/' /etc/sysctl.d/99-sysctl.conf + + # disable net renamed + sed -i '/NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"/s/^/#/' /lib/udev/rules.d/80-net-setup-link.rules + + # enable ping for user + echo 'net.ipv4.ping_group_range=1000 1000' | tee -a /etc/sysctl.d/10-custom-ping-group.conf + + if [ $5 = 'phytiumpi' ]; then + echo 'defaults.pcm.!card phytiumpe220xi2' >> /etc/asound.conf + echo 'defaults.ctl.!card phytiumpe220xi2' >> /etc/asound.conf + fi + + if dpkg -s openssh-server &> /dev/null; then + sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config + #ssh: disable weak MAC algorithm + echo "MACs hmac-sha2-256,hmac-sha2-512" >> /etc/ssh/sshd_config + fi + + # clean cached packages + apt-get clean + + + if [ $1 = arm64 ]; then + sysarch=aarch64-linux-gnu + elif [ $1 = armhf ]; then + sysarch=arm-linux-gnueabihf + fi + + + systemctl disable ModemManager.service + systemctl disable cups-browsed.service + systemctl disable cups.service + systemctl disable udisks2.service + systemctl disable NetworkManager-wait-online.service + systemctl disable dphys-swapfile.service + systemctl disable bluetooth.service + + # some shared libraries locate in /lib/aarch64-linux-gnu(or /lib/arm-linux-gnueabihf) and /usr/local/lib + echo export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib/$sysarch:/lib/$sysarch >> /etc/profile + + tmpusr=`ls -t /home | cut -d' ' -f1 | head -1` + [ -d /home/$tmpusr -a "$tmpusr" != "user" ] && rm -rf /home/$tmpusr + + test -c /dev/pts/0 && umount /dev/pts + test -f /proc/uptime && umount /proc + + echo APT Packages List: > /etc/packages.list + echo -e "Package\t Version\t Download-Size\t APT-Sources" >> /etc/packages.list + apt list --installed | cut -d/ -f1 | xargs apt show | \ + grep -E '^Package:|^APT-Sources:|^Version:|^Download-Size:' > packagelist + lnum=`wc -l packagelist |cut -d' ' -f1` + for((i=1; i<$lnum;)); do + t=$[ $i + 3 ] + sed -n "${i},${t}p" packagelist | grep -E 'Package:|APT-Sources:|Version:|Download-Size:' | \ + tr "\n" " " | cut -d' ' -f2,4,6,7,9,10 >> /etc/packages.list + i=$[ $i + 4 ] + done + rm -f packagelist +} + +do_distrorfs_second_stage $1 $2 $3 $4 $5 $6 +# end second stage installing diff --git a/board/phytium/common/post-custom-skeleton-kali-linux.sh b/board/phytium/common/post-custom-skeleton-kali-linux.sh new file mode 100755 index 00000000..5134c90e --- /dev/null +++ b/board/phytium/common/post-custom-skeleton-kali-linux.sh @@ -0,0 +1,254 @@ +#!/usr/bin/env bash + +trap recover_from_ctrl_c INT + +recover_from_ctrl_c() +{ + do_recover_from_error "Interrupt caught ... exiting" + exit 1 +} + +do_recover_from_error() +{ + sudo chroot $RFSDIR /bin/umount /proc > /dev/null 2>&1; + sudo chroot $RFSDIR /bin/umount /sys > /dev/null 2>&1; + USER=$(id -u); GROUPS=${GROUPS}; \ + sudo chroot $RFSDIR /bin/chown -R ${USER}:${GROUPS} / > /dev/null 2>&1; + echo -e "\n************" + echo $1 + echo -e " Please running the below commands before re-compiling:" + echo -e " rm -rf $RFSDIR" + echo -e " make skeleton-custom-dirclean" + echo -e " Or\n make skeleton-custom-dirclean O=" +} + +# Generate a random machine name to be used +machine=$(dbus-uuidgen) +qemu_bin="/usr/bin/qemu-aarch64-static" +lib_arch="aarch64-linux-gnu" + +# systemd-nspawn environment +systemd_nspawn_exec() { + LANG=C systemd-nspawn -q --bind-ro ${qemu_bin} -M ${machine} -D ${1} "$@" +} + +do_distrorfs_first_stage() { +# $1: platform architecture, arm64 +# $2: rootfs directory, output/build/skeleton-custom +# $3: board/common/additional_packages_list +# $4: kali-last-snapshot +# $5: kali-linux + + DISTROTYPE=$5 + [ -z "$RFSDIR" ] && RFSDIR=$2 + [ -z $RFSDIR ] && echo No RootFS exist! && return + [ -f $RFSDIR/etc/.firststagedone ] && echo $RFSDIR firststage exist! && return + [ -f /etc/.firststagedone -a ! -f /proc/uptime ] && return + + if [ $1 = arm64 ]; then + tgtarch=aarch64 + elif [ $1 = armhf ]; then + tgtarch=arm + fi + + qemu-${tgtarch}-static -version > /dev/null 2>&1 + if [ "x$?" != "x0" ]; then + echo qemu-${tgtarch}-static not found + exit 1 + fi + + debootstrap --version > /dev/null 2>&1 + if [ "x$?" != "x0" ]; then + echo debootstrap not found + exit 1 + fi + + sudo chown 0:0 $RFSDIR + sudo mkdir -p $2/usr/local/bin + sudo cp -f board/phytium/common/kali-linux-package-installer $RFSDIR/usr/local/bin/ + packages_list=board/phytium/common/$3 + [ ! -f $packages_list ] && echo $packages_list not found! && exit 1 + + echo additional packages list: $packages_list + if [ ! -d $RFSDIR/usr/aptpkg ]; then + sudo mkdir -p $RFSDIR/usr/aptpkg + sudo cp -f $packages_list $RFSDIR/usr/aptpkg + fi + + sudo mkdir -p $RFSDIR/etc + sudo cp -f /etc/resolv.conf $RFSDIR/etc/resolv.conf + + if [ ! -d $RFSDIR/debootstrap ]; then + echo "testdeboot" + export LANG=en_US.UTF-8 + sudo eatmydata debootstrap --foreign --keyring=/usr/share/keyrings/kali-archive-keyring.gpg --include=kali-archive-keyring,eatmydata --components="main,contrib,non-free,non-free-firmware" --arch $1 $4 $RFSDIR https://mirrors.tuna.tsinghua.edu.cn/kali + + # We need to manually extract eatmydata to use it for the second stage + for archive in $RFSDIR/var/cache/apt/archives/*eatmydata*.deb; do + sudo dpkg-deb --fsys-tarfile "$archive" | sudo tee $RFSDIR/eatmydata > /dev/null + sudo tar -xkf $RFSDIR/eatmydata -C $RFSDIR + sudo rm -f $RFSDIR/eatmydata + + done + + # Prepare dpkg to use eatmydata + LANG=C sudo systemd-nspawn -q --bind-ro "$qemu_bin" -M ${machine} -D "$RFSDIR" \ + dpkg-divert --divert /usr/bin/dpkg-eatmydata --rename --add /usr/bin/dpkg || return 1 + +sudo tee $RFSDIR/usr/bin/dpkg </dev/null + elif [ $4 = bookworm ]; then + echo debian,12 | tee $RFSDIR/etc/.firststagedone 1>/dev/null + + fi + setup_distribution_info $5 $2 $1 $4 + + #rm $RFSDIR/etc/apt/apt.conf + sudo rm $RFSDIR/dev/* -rf +} + +setup_distribution_info () { + DISTROTYPE=$1 + RFSDIR=$2 + tarch=$3 + distro=$4 + distroname=`head -1 $RFSDIR/etc/.firststagedone | cut -d, -f1` + distroversion=`head -1 $RFSDIR/etc/.firststagedone | cut -d, -f2` + releaseversion="$distroname (based on $DISTROTYPE-$distroversion-base) ${tarch}" + releasestamp="Build: `date +'%Y-%m-%d %H:%M:%S'`" + echo $releaseversion > $RFSDIR/etc/buildinfo + sed -i "1 a\\$releasestamp" $RFSDIR/etc/buildinfo + if grep U-Boot $RFSDIR/etc/.firststagedone 1>$RFSDIR/dev/null 2>&1; then + tail -1 $RFSDIR/etc/.firststagedone >> $RFSDIR/etc/buildinfo + fi + + if [ $DISTROTYPE = debian ]; then + echo Phytium Pi > $RFSDIR/etc/issue + echo phytium Pi > $RFSDIR/etc/issue.net + + tgtfile=$RFSDIR/etc/lsb-release + echo DISTRIB_ID=Phytium > $tgtfile + echo DISTRIB_RELEASE=1.0 >> $tgtfile + echo DISTRIB_CODENAME=1.0 >> $tgtfile + echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V2.1"' >> $tgtfile + + tgtfile=$RFSDIR/etc/update-motd.d/00-header + echo '#!/bin/sh' > $tgtfile + echo '[ -r /etc/lsb-release ] && . /etc/lsb-release' >> $tgtfile + echo 'printf "Welcome to %s (%s %s %s)\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"' >> $tgtfile + + tgtfile=$RFSDIR/etc/update-motd.d/10-help-text + echo '#!/bin/sh' > $tgtfile + echo 'printf "\n"' >> $tgtfile + echo 'printf " * Support: https://gitee.com/phytium_embedded/phytium-pi-os\n"' >> $tgtfile + + tgtfile=$RFSDIR/usr/lib/os-release + echo NAME=\"$distroname\" > $tgtfile + echo VERSION=${DISTROTYPE}-$distroversion >> $tgtfile + echo ID=debian >> $tgtfile + echo VERSION_ID=$distroversion >> $tgtfile + echo PRETTY_NAME=\" Phytium Pi\" >> $tgtfile + echo VERSION_CODENAME=$distro >> $tgtfile + + chmod +x $RFSDIR/etc/update-motd.d/00-header + chmod +x $RFSDIR/etc/update-motd.d/10-help-text + #rm -f $RFSDIR/etc/default/motd-news + #rm -f $RFSDIR/etc/update-motd.d/50-motd-news + chmod -x $RFSDIR/etc/update-motd.d/10-uname + echo -n > $RFSDIR/etc/motd + fi +} + +plat_name() +{ + if grep -Eq "^BR2_TARGET_GENERIC_HOSTNAME=\"phytiumpi\"$" ${BR2_CONFIG}; then + echo "phytiumpi" + fi +} + +arch_type() +{ + if grep -Eq "^BR2_aarch64=y$" ${BR2_CONFIG}; then + echo "arm64" + elif grep -Eq "^BR2_arm=y$" ${BR2_CONFIG}; then + echo "armhf" + fi +} + +full_rtf() +{ + if grep -Eq "^BR2_PACKAGE_ROOTFS_DESKTOP=y$" ${BR2_CONFIG}; then + echo "desktop" + else + echo "base" + fi +} + +main() +{ + # $1 - the current rootfs directory, skeleton-custom or target + sudo rm -rf $1/* + + # run first stage do_distrorfs_first_stage arm64 ${1} kali-linux-additional_packages_list kali-last-snapshot kali-linux + do_distrorfs_first_stage $(arch_type) ${1} kali-linux-additional_packages_list kali-last-snapshot kali-linux $(plat_name) $(full_rtf) + + # change the hostname to "platforms-name" + echo $(plat_name) > ${1}/etc/hostname + + if ! grep -q "$(plat_name)" ${1}/etc/hosts; then + echo 127.0.0.1 $(plat_name) | sudo tee -a ${1}/etc/hosts 1>/dev/null + fi + + exit $? +} + +main $@ diff --git a/configs/kali_linux.config b/configs/kali_linux.config new file mode 100644 index 00000000..37ab114b --- /dev/null +++ b/configs/kali_linux.config @@ -0,0 +1 @@ +BR2_ROOTFS_POST_CUSTOM_SKELETON_SCRIPT="board/phytium/common/post-custom-skeleton-kali-linux.sh" -- Gitee From 632a569e6b040e6b11095790f3582b2911f906e7 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 30 Apr 2025 15:05:22 +0800 Subject: [PATCH 02/15] add package qlauncher Signed-off-by: lindongping --- package/Config.in | 1 + ...nly-reserve-NET-Painting-Other-panel.patch | 101 ++++++++++++++++++ package/qlauncher/Config.in | 6 ++ package/qlauncher/qlauncher.mk | 18 ++++ package/qt5/qt5base/qmake.conf.in | 2 + package/qt5/qt5base/qt5base.mk | 1 + 6 files changed, 129 insertions(+) create mode 100644 package/qlauncher/0001-mainwindow.cpp-only-reserve-NET-Painting-Other-panel.patch create mode 100644 package/qlauncher/Config.in create mode 100644 package/qlauncher/qlauncher.mk diff --git a/package/Config.in b/package/Config.in index 04d5bd7c..7c0b2780 100644 --- a/package/Config.in +++ b/package/Config.in @@ -347,6 +347,7 @@ comment "Graphic applications" source "package/swaybg/Config.in" source "package/tesseract-ocr/Config.in" source "package/tinifier/Config.in" + source "package/qlauncher/Config.in" comment "Graphic libraries" source "package/cegui/Config.in" diff --git a/package/qlauncher/0001-mainwindow.cpp-only-reserve-NET-Painting-Other-panel.patch b/package/qlauncher/0001-mainwindow.cpp-only-reserve-NET-Painting-Other-panel.patch new file mode 100644 index 00000000..a1bcb590 --- /dev/null +++ b/package/qlauncher/0001-mainwindow.cpp-only-reserve-NET-Painting-Other-panel.patch @@ -0,0 +1,101 @@ +From b43b692edb7c56bfb460463ea79ba24af6b1f3e0 Mon Sep 17 00:00:00 2001 +From: lindongping2027 +Date: Thu, 24 Apr 2025 16:58:18 +0800 +Subject: [PATCH] mainwindow.cpp: only reserve NET\Painting\Other panel + +Signed-off-by: lindongping2027 +--- + mainwindow.cpp | 62 ++++---------------------------------------------- + 1 file changed, 4 insertions(+), 58 deletions(-) + +diff --git a/mainwindow.cpp b/mainwindow.cpp +index 68dd0ae..504b2d7 100755 +--- a/mainwindow.cpp ++++ b/mainwindow.cpp +@@ -124,79 +124,25 @@ namespace ui { + + void MainWindow::initButtons() + { +- ActionButton *wifiButton = new ActionButton(0, +- QIcon(":/icons/wifi2.png"), +- QPixmap(":/icons/wifi_l.png"), +- this); +- ActionButton *blueButton = new ActionButton(1, +- QIcon(":/icons/bluetooth2.png"), +- QPixmap(":/icons/bluetooth_l.png"), +- this); + ActionButton *netButton = new ActionButton(2, + QIcon(":/icons/net2.png"), + QPixmap(":/icons/net_l.png"), + this); +- ActionButton *internetButton = new ActionButton(3, +- QIcon(":/icons/internet2.png"), +- QPixmap(":/icons/internet_l.png"), +- this); +- ActionButton *keyButton = new ActionButton(4, +- QIcon(":/icons/key2.png"), +- QPixmap(":/icons/irda_l.png"), +- this); +-#if 0 +- ActionButton *irdaButton = new ActionButton(5, +- QIcon(":/icons/irda2.png"), +- QPixmap(":/icons/irda_l.png"), +- this); +-#endif + ActionButton *paintingButton = new ActionButton(5, + QIcon(":/icons/painting2.png"), + QPixmap(":/icons/painting_l.png"), + this); +- ActionButton *cameraButton = new ActionButton(6, +- QIcon(":/icons/camera2.png"), +- QPixmap(":/icons/camera_l.png"), +- this); +- ActionButton *videoButton = new ActionButton(7, +- QIcon(":/icons/video2.png"), +- QPixmap(":/icons/video_l.png"), +- this); +- ActionButton *gameButton = new ActionButton(8, +- QIcon(":/icons/game2.png"), +- QPixmap(":/icons/game_l.png"), +- this); +- ActionButton *tfButton = new ActionButton(9, +- QIcon(":/icons/IFcard2.png"), +- QPixmap(":/icons/IFcard_l.png"), +- this); + ActionButton *otherButton = new ActionButton(10, + QIcon(":/icons/other2.png"), + QPixmap(":/icons/other_l.png"), + this); + +- mItemLayout->addWidget(wifiButton, 0, 0); +- mItemLayout->addWidget(blueButton, 0, 1); +- mItemLayout->addWidget(netButton, 0, 2); +- mItemLayout->addWidget(internetButton, 0, 3); +- mItemLayout->addWidget(keyButton, 0, 4); +- mItemLayout->addWidget(paintingButton, 1, 0); +- mItemLayout->addWidget(cameraButton, 1, 1); +- mItemLayout->addWidget(videoButton, 1, 2); +- mItemLayout->addWidget(gameButton, 1, 3); +- mItemLayout->addWidget(tfButton, 1, 4); +- mItemLayout->addWidget(otherButton, 2, 0); +- +- connect(wifiButton, SIGNAL(clicked()), SLOT(onWifiButtonClicked())); +- connect(blueButton, SIGNAL(clicked()), SLOT(onBlueButtonClicked())); ++ mItemLayout->addWidget(netButton, 0, 0); ++ mItemLayout->addWidget(paintingButton, 0, 1); ++ mItemLayout->addWidget(otherButton, 0, 2); ++ + connect(netButton, SIGNAL(clicked()), SLOT(onNetButtonClicked())); +- connect(internetButton, SIGNAL(clicked()), SLOT(onInternetButtonClicked())); +- connect(keyButton, SIGNAL(clicked()), SLOT(onKeyButtonClicked())); + connect(paintingButton, SIGNAL(clicked()), SLOT(onPaintingButtonClicked())); +- connect(cameraButton, SIGNAL(clicked()), SLOT(onCameraButtonClicked())); +- connect(videoButton, SIGNAL(clicked()), SLOT(onVideoButtonClicked())); +- connect(gameButton, SIGNAL(clicked()), SLOT(onGameButtonClicked())); +- connect(tfButton, SIGNAL(clicked()), SLOT(onTFButtonClicked())); + connect(otherButton, SIGNAL(clicked()), SLOT(onOtherButtonClicked())); + } + +-- +2.30.2 + diff --git a/package/qlauncher/Config.in b/package/qlauncher/Config.in new file mode 100644 index 00000000..53902126 --- /dev/null +++ b/package/qlauncher/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_QLAUNCHER + bool "qlauncher" + select BR2_PACKAGE_QT5BASE + select BR2_PACKAGE_PCRE2 + help + A simple launcher for Qt applications. diff --git a/package/qlauncher/qlauncher.mk b/package/qlauncher/qlauncher.mk new file mode 100644 index 00000000..cd90ed4b --- /dev/null +++ b/package/qlauncher/qlauncher.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# Qt Launcher +# +################################################################################ + +QLAUNCHER_VERSION = abd9b187804c60be2b34dee1917e36e5c7ab917d +QLAUNCHER_SITE = https://gitee.com/murphy-wong/qtlauncher.git +QLAUNCHER_SITE_METHOD = git + +#QLAUNCHER_DEPENDENCIES = qt5base pcre2 +QLAUNCGER_INSTALL_TARGET = YES + +define QLAUNCHER_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 755 $(@D)/launcher $(TARGET_DIR)/usr/bin/QLauncher +endef + +$(eval $(qmake-package)) diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in index 024c0749..a8ecfccd 100644 --- a/package/qt5/qt5base/qmake.conf.in +++ b/package/qt5/qt5base/qmake.conf.in @@ -15,6 +15,8 @@ QMAKE_CXX = $${CROSS_COMPILE}g++ # modifications to gcc-base.conf QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS} QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS} +QMAKE_LIBS += -L$${BUILDROOT_STAGING_DIR}/usr/lib/aarch64-linux-gnu -lgcc_s +QMAKE_LIBS += -Wl,-rpath-link=$${BUILDROOT_STAGING_DIR}/usr/lib/aarch64-linux-gnu # Remove all optimisation flags, we really only want our own. QMAKE_CFLAGS_OPTIMIZE = QMAKE_CFLAGS_OPTIMIZE_DEBUG = diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk index e173639c..c0455dbd 100644 --- a/package/qt5/qt5base/qt5base.mk +++ b/package/qt5/qt5base/qt5base.mk @@ -345,6 +345,7 @@ define QT5BASE_CONFIGURE_CMDS sed 's/@EGLFS_DEVICE@/$(QT5BASE_EGLFS_DEVICE)/g' \ $(QT5BASE_PKGDIR)/qmake.conf.in > \ $(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf + sed -i '15 i BUILDROOT_STAGING_DIR = $(STAGING_DIR)' $(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf $(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qplatformdefs.h \ $(@D)/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h $(QT5BASE_CONFIGURE_CONFIG_FILE) -- Gitee From 36d4a2df8b23742aebdbd50cb66c13c6cb9fb818 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 30 Apr 2025 15:06:24 +0800 Subject: [PATCH 03/15] add package weston-qlauncher Signed-off-by: lindongping --- package/Config.in | 1 + package/weston-qlauncher/Config.in | 8 +++ package/weston-qlauncher/src/.bash_profile | 11 +++ .../weston-qlauncher/src/qlauncher_icon.png | Bin 0 -> 854 bytes package/weston-qlauncher/src/qtwayland.sh | 3 + package/weston-qlauncher/src/weston.ini | 55 +++++++++++++++ package/weston-qlauncher/src/weston.sh | 66 ++++++++++++++++++ package/weston-qlauncher/weston-qlauncher.mk | 25 +++++++ 8 files changed, 169 insertions(+) create mode 100644 package/weston-qlauncher/Config.in create mode 100644 package/weston-qlauncher/src/.bash_profile create mode 100644 package/weston-qlauncher/src/qlauncher_icon.png create mode 100644 package/weston-qlauncher/src/qtwayland.sh create mode 100644 package/weston-qlauncher/src/weston.ini create mode 100644 package/weston-qlauncher/src/weston.sh create mode 100644 package/weston-qlauncher/weston-qlauncher.mk diff --git a/package/Config.in b/package/Config.in index 7c0b2780..63acf4fb 100644 --- a/package/Config.in +++ b/package/Config.in @@ -407,6 +407,7 @@ endif source "package/tekui/Config.in" source "package/weston/Config.in" source "package/x11r7/Config.in" + source "package/weston-qlauncher/Config.in" comment "X applications" depends on BR2_PACKAGE_XORG7 diff --git a/package/weston-qlauncher/Config.in b/package/weston-qlauncher/Config.in new file mode 100644 index 00000000..52875d7b --- /dev/null +++ b/package/weston-qlauncher/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_WESTON_QLAUNCHER + bool "weston-qlauncher" + select BR2_PACKAGE_QLAUNCHER + help + weston-qlauncher is a tool that integrates the functionality of + Weston, the Wayland compositor, and qlauncher, a simple application + launcher. It provides a seamless way to start and manage Qt-based + applications within the Weston environment. diff --git a/package/weston-qlauncher/src/.bash_profile b/package/weston-qlauncher/src/.bash_profile new file mode 100644 index 00000000..dc29cf58 --- /dev/null +++ b/package/weston-qlauncher/src/.bash_profile @@ -0,0 +1,11 @@ +if [[ -z "$DISPLAY" && "$(tty)" == "/dev/tty1" ]]; then + # set Wayland enviroment + export XDG_SESSION_TYPE=wayland + export WAYLAND_DISPLAY=wayland-0 + export XDG_RUNTIME_DIR=/run/user/$(id -u) + + mkdir -p $XDG_RUNTIME_DIR + chmod 700 $XDG_RUNTIME_DIR + + weston --tty=1 & +fi diff --git a/package/weston-qlauncher/src/qlauncher_icon.png b/package/weston-qlauncher/src/qlauncher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f6590cfedc490059901ddf0731e2a5ab15653dc8 GIT binary patch literal 854 zcmV-c1F8IpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0_#acK~zXfwUtXq zR8bhm|92jD?sc5enQ?qTMfn0#GO3_dwGd=_pqmJaf{LJ^T2w?WT-By!8zb7Z=;5L# zl3=JML4jousHo{=n3h=cKxgjUd3Mg3+npJ&Gm7bNGv}W3o$voW&N;(Xw#_84j_8!% zbz{W>i9`ZsBZmSL2R#SGSD1Is5(#?XV3i10g@A@q9u__sPn39fd!u;sUB;7sN7>z)4m4M5;t-DpzqIj9R@!Bns z3Md~0RUi;f%~Gv<2kfY@8E~n`hcmA{r1mnqgbxM-%!c-a29XYp{`SXtJQYW3MBLn0$j0>4e3}knYCgtl%aH)+F{SPx#07*qoM6N<$g6}qtrT_o{ literal 0 HcmV?d00001 diff --git a/package/weston-qlauncher/src/qtwayland.sh b/package/weston-qlauncher/src/qtwayland.sh new file mode 100644 index 00000000..e0c26c9b --- /dev/null +++ b/package/weston-qlauncher/src/qtwayland.sh @@ -0,0 +1,3 @@ +# The env variables below can be overridden + +export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-wayland} diff --git a/package/weston-qlauncher/src/weston.ini b/package/weston-qlauncher/src/weston.ini new file mode 100644 index 00000000..002b3fe1 --- /dev/null +++ b/package/weston-qlauncher/src/weston.ini @@ -0,0 +1,55 @@ +[core] +backend=drm-backend.so + +# Allow running without input devices +require-input=false + +# Disable screen idle timeout by default +idle-time=0 + +# The repaint-window is used to calculate repaint delay(ms) after flipped. +# value <= 0: delay = abs(value) +# value > 0: delay = vblank_duration - value +repaint-window=-1 + +# Allow blending with lower drm planes +# gbm-format=argb8888 + +[shell] +# top(default)|bottom|left|right|none, none to disable panel +panel-position=bottom + +panel-scale=4 + +# background-image +background-image=/usr/share/images/desktop-base/dark.jpg + +# scale|scale-crop|tile +background-type=scale-crop + +# none|minutes(default)|seconds +# clock-format=seconds + +# Disable screen locking +locking=false + +[launcher] +icon=/usr/share/weston/terminal.png +path=/usr/bin/weston-terminal + +[launcher] +icon=/usr/share/weston/qlauncher_icon.png +path=/usr/bin/QLauncher + +[libinput] +# Uncomment below to enable touch screen calibrator(weston-touch-calibrator) +# touchscreen_calibrator=true +# calibration_helper=/bin/weston-calibration-helper.sh + +[keyboard] +# Comment this to enable vt switching +vt-switching=false + +# Configs for auto key repeat +# repeat-rate=40 +# repeat-delay=400 diff --git a/package/weston-qlauncher/src/weston.sh b/package/weston-qlauncher/src/weston.sh new file mode 100644 index 00000000..772da0f8 --- /dev/null +++ b/package/weston-qlauncher/src/weston.sh @@ -0,0 +1,66 @@ +# The env variables below can be overridden + +# Comment out this for atomic related functions, e.g. sprites +export WESTON_DISABLE_ATOMIC=1 + +# Allow using drm modifier, e.g. ARM AFBC +# export WESTON_ALLOW_GBM_MODIFIERS=1 + +# Enable black background for fullscreen views +# export WESTON_FULLSCREEN_BLACK_BACKGROUND=1 + +# Allow disabling unused CRTCs +# WESTON_DRM_MASTER=1 + +# Override output's freezing time +# export WESTON_DRM_RESIZE_FREEZE_MS=1000 + +# Primary screen +# export WESTON_DRM_PRIMARY=eDP-1 + +# Single screen +# export WESTON_DRM_SINGLE_HEAD=1 + +# Fallback to any available connector +# export WESTON_DRM_HEAD_FALLBACK=1 + +# Connector selecting mode: +# default|primary|internal|external|external-dual +# export WESTON_DRM_HEAD_MODE=external-dual + +# Screens layout direction +# horizontal|vertical|same-as +# export WESTON_OUTPUT_FLOW=vertical + +# Virtual display size +# export WESTON_DRM_VIRTUAL_SIZE=1024x768 + +# Comment out these to disable mirror mode +export WESTON_DRM_MIRROR=1 +export WESTON_DRM_KEEP_RATIO=1 + +# Disable DRM plane hardware scale feature +# export WESTON_DRM_DISABLE_PLANE_SCALE=1 + +# Tag file for freezing weston display +export WESTON_FREEZE_DISPLAY=/tmp/.freeze_weston + +# Set dynamic config file path +# export WESTON_DRM_CONFIG=/tmp/.weston_drm.conf +# +# Dynamic config examples: +# echo "compositor:state:sleep" > /tmp/.weston_drm.conf # off + input wakeable +# echo "compositor:state:block" > /tmp/.weston_drm.conf # no input +# echo "compositor:state:freeze" > /tmp/.weston_drm.conf # no input + freeze +# echo "compositor:state:off" > /tmp/.weston_drm.conf # no input + off +# echo "compositor:state:on" > /tmp/.weston_drm.conf +# echo "output:DSI-1:off" >> /tmp/.weston_drm.conf +# echo "output:eDP-1:freeze" >> /tmp/.weston_drm.conf +# echo "output:DSI-1:on" >> /tmp/.weston_drm.conf +# echo "output:all:rotate90" >> /tmp/.weston_drm.conf +# echo "output:all:rect=<100,20,1636,2068>" >> /tmp/.weston_drm.conf +# echo "output:HDMI-A-1:mode=800x600" >> /tmp/.weston_drm.conf +# echo "output:HDMI-A-1:pos=100,200" >> /tmp/.weston_drm.conf +# echo "output:HDMI-A-1:size=1920x1080" >> /tmp/.weston_drm.conf +# echo "output:HDMI-A-1:prefer" >> /tmp/.weston_drm.conf +# echo "output:HDMI-A-1:primary" >> /tmp/.weston_drm.conf diff --git a/package/weston-qlauncher/weston-qlauncher.mk b/package/weston-qlauncher/weston-qlauncher.mk new file mode 100644 index 00000000..ced856df --- /dev/null +++ b/package/weston-qlauncher/weston-qlauncher.mk @@ -0,0 +1,25 @@ +################################################################################ +# +# Weston and Qt Launcher +# +################################################################################ + +WESTON_QLAUNCHER_VERSION = 0.1 +WESTON_QLAUNCHER_SITE = package/weston-qlauncher/src +WESTON_QLAUNCHER_SITE_METHOD = local +WESTON_QLAUNCHER_INSTALL_TARGET = YES + +define WESTON_QLAUNCHER_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/etc/xdg/weston/ + mkdir -p $(TARGET_DIR)/etc/profile.d/ + mkdir -p $(TARGET_DIR)/lib/systemd/system/ + mkdir -p $(TARGET_DIR)/usr/share/weston/ + $(INSTALL) -m 644 -D $(@D)/weston.ini $(TARGET_DIR)/etc/xdg/weston/ + $(INSTALL) -m 755 -D $(@D)/weston.sh $(TARGET_DIR)/etc/profile.d/ + $(INSTALL) -m 755 -D $(@D)/qtwayland.sh $(TARGET_DIR)/etc/profile.d/ + $(INSTALL) -m 644 -D $(@D)/qlauncher_icon.png $(TARGET_DIR)/usr/share/weston/ + $(INSTALL) -m 644 -D $(@D)/.bash_profile $(TARGET_DIR)/root + touch $(TARGET_DIR)/root/.weston +endef + +$(eval $(generic-package)) -- Gitee From ab68a08df76ed16fddebe8a91f5cc1906fa3c44d Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 30 Apr 2025 15:07:09 +0800 Subject: [PATCH 04/15] add weston.config Signed-off-by: lindongping --- board/phytium/common/debian-additional_packages_list | 1 + board/phytium/common/debian-package-installer | 10 ++++++++-- board/phytium/common/post-custom-skeleton-debian.sh | 6 +++++- configs/weston.config | 7 +++++++ package/phytium-firstlogin/src/phytium-firstlogin | 6 ++++-- 5 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 configs/weston.config diff --git a/board/phytium/common/debian-additional_packages_list b/board/phytium/common/debian-additional_packages_list index ce77cfdf..d44ff0ac 100644 --- a/board/phytium/common/debian-additional_packages_list +++ b/board/phytium/common/debian-additional_packages_list @@ -1,6 +1,7 @@ # additional packages list for SDK main userland gathered from main repo additional_full_packages_list=" python3-pygame python3-tk thonny python3-pgzero python3-serial debian-reference-en dillo python3-pip python3-numpy pypy alacarte rc-gui sense-hat tree libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr geany python3-spidev python3-twython python3-smbus python3-flask pprompt piwiz" +additonal_weston_qlauncher_packages_list="xwayland weston qtbase5-dev qtbase5-dev-tools qtwayland5 libqt5serialport5 libqt5serialport5-dev qtwebengine5-* libqt5webengine5" additional_desktop_packages_list="tigervnc-standalone-server vlc rfkill blueman bluetooth fbset audacity" diff --git a/board/phytium/common/debian-package-installer b/board/phytium/common/debian-package-installer index eda6f5b6..7305ce73 100755 --- a/board/phytium/common/debian-package-installer +++ b/board/phytium/common/debian-package-installer @@ -44,7 +44,7 @@ do_distrorfs_second_stage() { export LC_ALL=C LANGUAGE=C LANG=C - echo installing base packages: $pkglist + echo installing base packages for pkg in $additional_base_packages_list; do echo Installing $pkg ... DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 @@ -59,7 +59,7 @@ do_distrorfs_second_stage() { rm -f /etc/systemd/system/display-manager.service - echo installing desktop packages list packages: $pkglist + echo installing desktop packages list packages for pkg in $additional_desktop_packages_list; do echo Installing $pkg ... DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 @@ -89,6 +89,12 @@ do_distrorfs_second_stage() { echo remove packages. DEBIAN_FRONTEND=noninteractive apt-get -y remove --purge parole || exit 1 + elif [ $6 = weston ]; then + echo installing weston packages list packages + for pkg in $additonal_weston_qlauncher_packages_list; do + echo Installing $pkg ... + DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + done fi # set timezone diff --git a/board/phytium/common/post-custom-skeleton-debian.sh b/board/phytium/common/post-custom-skeleton-debian.sh index 26e9c7c0..21d1aa46 100755 --- a/board/phytium/common/post-custom-skeleton-debian.sh +++ b/board/phytium/common/post-custom-skeleton-debian.sh @@ -187,7 +187,11 @@ full_rtf() if grep -Eq "^BR2_PACKAGE_ROOTFS_DESKTOP=y$" ${BR2_CONFIG}; then echo "desktop" else - echo "base" + if grep -Eq "^BR2_PACKAGE_WESTON_QLAUNCHER=y$" ${BR2_CONFIG}; then + echo "weston" + else + echo "base" + fi fi } diff --git a/configs/weston.config b/configs/weston.config new file mode 100644 index 00000000..1721ac82 --- /dev/null +++ b/configs/weston.config @@ -0,0 +1,7 @@ +BR2_PACKAGE_WESTON_QLAUNCHER=y +BR2_PACKAGE_QLAUNCHER=y +BR2_PACKAGE_QT5=y +BR2_PACKAGE_LIBZLIB=y +BR2_PACKAGE_QT5BASE_GUI=y +BR2_PACKAGE_QT5BASE_WIDGETS=y +BR2_PACKAGE_PHYTIUM_DESKTOP_TOOLS=y diff --git a/package/phytium-firstlogin/src/phytium-firstlogin b/package/phytium-firstlogin/src/phytium-firstlogin index a78ad79c..bc6f39ab 100755 --- a/package/phytium-firstlogin/src/phytium-firstlogin +++ b/package/phytium-firstlogin/src/phytium-firstlogin @@ -531,8 +531,10 @@ firmware_configure(){ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then do_firstrun_automated_network_configuration - # disable autologin - rm -f /etc/systemd/system/getty@.service.d/override.conf + # disable autologin, reserve autologin when weston is enable + if [[ ! -f /root/.weston ]]; then + rm -f /etc/systemd/system/getty@.service.d/override.conf + fi rm -f /etc/systemd/system/serial-getty@.service.d/override.conf systemctl daemon-reload -- Gitee From dd13f80c9cd816e42b0802154892b08788a744fb Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 30 Apr 2025 15:07:39 +0800 Subject: [PATCH 05/15] README: add weston+qlauncher Signed-off-by: lindongping --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 528e7eb0..10a2be7f 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,17 @@ Kali Linux是基于Debian的Linux发行版,它被设计为用于数字取证 (4)文件的安装路径 关于Kali Linux的更多信息,请参考`https://www.kali.org/docs/` +### 支持weston+qlauncher +Wayland是一个用于替代X Window System(通常简称为X)的计算机显示服务器通信协议,旨在提供更现代、简化和高性能的图形用户界面(GUI)体验。 +Weston作为Wayland协议的一个示例实现,主要目的是作为Wayland协议的参考实现,但它的设计允许它运行在不同的图形环境中,包括传统的X11环境。 +weston.config实现了weston+qlauncher的简单桌面,显示服务默认使用Weston drm后端,并提供了一个简单的qt launcher应用。 +如果需要使用weston+qlauncher功能,请使用不带桌面的配置项phytiumpi_defconfig,合并weston.config配置项: +`./support/kconfig/merge_config.sh configs/phytiumpi_defconfig configs/weston.config` +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、sdcard.img 镜像位于output/images目录。 + ## 清理编译结果 (1)`$ make clean` 删除所有编译结果,包括output目录下的所有内容。当编译完一个文件系统后,编译另一个文件系统前,需要执行此命令。 -- Gitee From 7fac3e42b8a05561def1f6bca16e547bd03795f5 Mon Sep 17 00:00:00 2001 From: lindongping2027 Date: Tue, 13 May 2025 10:59:20 +0800 Subject: [PATCH 06/15] kali skeleton-custom: fix the issue where debootstrap second stage 'Unpacking the base system' takes too long Signed-off-by: lindongping2027 --- board/phytium/common/kali-archive-keyring.gpg | Bin 2271 -> 3464 bytes .../common/post-custom-skeleton-kali-linux.sh | 52 +++++++++++++----- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/board/phytium/common/kali-archive-keyring.gpg b/board/phytium/common/kali-archive-keyring.gpg index ca4ff838dc50f6c1ce1a404225588fae813fbc5d..37973d92f2dae07d1de95a3381d99869653bb418 100644 GIT binary patch delta 1210 zcmV;r1V#Jb5r`XqnF0+2XaOXZ0T2M?F*a2UDCM4~+aNcB(mJ%an z35cU>9nSCt5X6E*>(+Qa6{%ls2H2IysQgtY@>^dR9B?GPsMZY_IfU}x^GpWDyH{fG zua9(M<7#gpJS~ z=0qA}XA_kH=cl0?h_|`0Av?^2spKf|AeeFsDfrDl3aDUwOAikcFJ@v?n8C5L&F}zh z89QUlTblHLYm%|^Q@$e~NQ^6p{-V7$+xeK?7ves~9 zS%Q;+g3M|P+F1r+dJsO#^4aa9DB1OAf$&+=a{l3e$C7m*@Q&cFQ@w2xU#3c@Qf{%i zC*~UK6*$f$ct{ObVxZ6PU^1krpI+OV1_GnxC4^Xd>L*iMUMt}aEY8^>wxx#YE5kpXz5di=Jv_MN?Y-u1&X>N6RAVG3tXlZt3AVGC>Z*5_8 zX=5N$X=iR}Zf77%WqBYdGB7eVDIh##Wp-t3Kx<)aX)bSaXFiDnR0IG0l_f!c z>V-b)*cObV&qOf`imv8PUlQWM9lcCxv1$ycL>brMtR~Dpr{usyV@Rz<9WU5ZI)jv^ z`<|SmL=pVkD)Qvo2==t2ps!Kf4rN7Aodd-9hGm`X`Tbo;Fof=T<9;6gWSMCoa4teippFL7p_6 zKZ+I8Kw58@Uf&fYTI~AyVfCa9o&g%+0s2I;a_x^XV3%BXSo`M;B2-_wNI$~-+`tJE z_t44EKq5Nn^rI?7=j!<%2ihajD<)VOF!@Dt+<_ovVAwHP3DU<@akW;8zX?r$t$}OS z%Hh`?SyYLbmL`b%1+`l9!K3+HuLt>^*AQXRCnkJ;E*c5fhLXiRg>FYwiD9bfy;-dm z5F>7;>i`ZA_Umam;$iEE{xR}iq@2vKP$O8@`> delta 9 QcmeB>zAw0WCChyd02Cbq+W-In diff --git a/board/phytium/common/post-custom-skeleton-kali-linux.sh b/board/phytium/common/post-custom-skeleton-kali-linux.sh index 5134c90e..916edb71 100755 --- a/board/phytium/common/post-custom-skeleton-kali-linux.sh +++ b/board/phytium/common/post-custom-skeleton-kali-linux.sh @@ -22,16 +22,6 @@ do_recover_from_error() echo -e " Or\n make skeleton-custom-dirclean O=" } -# Generate a random machine name to be used -machine=$(dbus-uuidgen) -qemu_bin="/usr/bin/qemu-aarch64-static" -lib_arch="aarch64-linux-gnu" - -# systemd-nspawn environment -systemd_nspawn_exec() { - LANG=C systemd-nspawn -q --bind-ro ${qemu_bin} -M ${machine} -D ${1} "$@" -} - do_distrorfs_first_stage() { # $1: platform architecture, arm64 # $2: rootfs directory, output/build/skeleton-custom @@ -81,8 +71,42 @@ do_distrorfs_first_stage() { if [ ! -d $RFSDIR/debootstrap ]; then echo "testdeboot" export LANG=en_US.UTF-8 - sudo eatmydata debootstrap --foreign --keyring=/usr/share/keyrings/kali-archive-keyring.gpg --include=kali-archive-keyring,eatmydata --components="main,contrib,non-free,non-free-firmware" --arch $1 $4 $RFSDIR https://mirrors.tuna.tsinghua.edu.cn/kali + sudo eatmydata debootstrap --foreign --keyring=board/phytium/common/kali-archive-keyring.gpg --include=kali-archive-keyring,eatmydata --components="main,contrib,non-free,non-free-firmware" --arch $1 $4 $RFSDIR https://mirrors.tuna.tsinghua.edu.cn/kali + + # Check systemd-nspawn version + nspawn_ver=$(systemd-nspawn --version | awk '{if(NR==1) print $2}') + + if [[ $nspawn_ver -ge 245 ]]; then + extra_args="--hostname=$hostname -q -P" + + elif [[ $nspawn_ver -ge 241 ]]; then + extra_args="--hostname=$hostname -q" + + else + extra_args="-q" + + fi + ENV1="RUNLEVEL=1" + ENV2="LANG=C" + ENV3="DEBIAN_FRONTEND=noninteractive" + ENV4="DEBCONF_NOWARNINGS=yes" + # Jenkins server doesn't have this?? + #ENV5="QEMU_CPU=max,pauth-impdef=on" + ENV5="QEMU_CPU=cortex-a72" + + # Ensure we export QEMU_CPU so its set for systemd-nspawn to use + #export QEMU_CPU=max,pauth-impdef=on + export QEMU_CPU=cortex-a72 + # Generate a random machine name to be used + machine=$(dbus-uuidgen) + qemu_bin="/usr/bin/qemu-aarch64-static" + lib_arch="aarch64-linux-gnu" + # systemd-nspawn environment + systemd_nspawn_exec() { + # LANG=C systemd-nspawn -q --bind-ro ${qemu_bin} -M ${machine} -D ${work_dir} "$@" + sudo systemd-nspawn --bind-ro "$qemu_bin" $extra_args --capability=cap_setfcap -E $ENV1 -E $ENV2 -E $ENV3 -E $ENV4 -E $ENV5 -M "$machine" -D "$RFSDIR" "$@" + } # We need to manually extract eatmydata to use it for the second stage for archive in $RFSDIR/var/cache/apt/archives/*eatmydata*.deb; do sudo dpkg-deb --fsys-tarfile "$archive" | sudo tee $RFSDIR/eatmydata > /dev/null @@ -92,8 +116,7 @@ do_distrorfs_first_stage() { done # Prepare dpkg to use eatmydata - LANG=C sudo systemd-nspawn -q --bind-ro "$qemu_bin" -M ${machine} -D "$RFSDIR" \ - dpkg-divert --divert /usr/bin/dpkg-eatmydata --rename --add /usr/bin/dpkg || return 1 + systemd_nspawn_exec dpkg-divert --divert /usr/bin/dpkg-eatmydata --rename --add /usr/bin/dpkg sudo tee $RFSDIR/usr/bin/dpkg < Date: Thu, 15 May 2025 10:06:21 +0800 Subject: [PATCH 07/15] weston-qlauncher: depends on qlauncher instead of select Signed-off-by: lindongping --- package/weston-qlauncher/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/weston-qlauncher/Config.in b/package/weston-qlauncher/Config.in index 52875d7b..c4dfc14d 100644 --- a/package/weston-qlauncher/Config.in +++ b/package/weston-qlauncher/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_WESTON_QLAUNCHER bool "weston-qlauncher" - select BR2_PACKAGE_QLAUNCHER + depends on BR2_PACKAGE_QLAUNCHER help weston-qlauncher is a tool that integrates the functionality of Weston, the Wayland compositor, and qlauncher, a simple application -- Gitee From ddee4c125fee4d49db586d46b734af6e23e34a3a Mon Sep 17 00:00:00 2001 From: lindongping2027 Date: Fri, 23 May 2025 19:18:32 +0800 Subject: [PATCH 08/15] skeleton-custon: scripts add eatmydata to accelerate the construction process Signed-off-by: lindongping2027 --- README.md | 5 +-- board/phytium/common/debian-package-installer | 23 ++++++------ .../common/post-custom-skeleton-debian.sh | 36 +++++++++++++++++-- 3 files changed, 47 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 10a2be7f..74e3fa4d 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,9 @@ Buildroot被设计为在x86 Linux系统上运行,结合其他因素,本仓 • Source fetching tools: – wget – git -• Kali Linux build tools: -- systemd-container -- eatmydata ``` 除此之外,还需要安装如下软件包: -`$ sudo apt install debootstrap qemu-user-static binfmt-support debian-archive-keyring` +`$ sudo apt install debootstrap qemu-user-static binfmt-support debian-archive-keyring systemd-container eatmydata` 对于debian12系统,需要设置PATH环境变量:`PATH=$PATH:/usr/sbin` ## 下载Phytium Pi OS并切换到2024.02分支 diff --git a/board/phytium/common/debian-package-installer b/board/phytium/common/debian-package-installer index 7305ce73..95bc7965 100755 --- a/board/phytium/common/debian-package-installer +++ b/board/phytium/common/debian-package-installer @@ -34,12 +34,12 @@ do_distrorfs_second_stage() { deb http://mirrors.tuna.tsinghua.edu.cn/debian-security $2-security main contrib non-free non-free-firmware EOF chmod +777 /tmp - apt update + eatmydata apt update DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C \ - apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" update || exit 1 + eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" update || exit 1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C \ - apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade || exit 1 + eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade || exit 1 echo upgraded export LC_ALL=C LANGUAGE=C LANG=C @@ -47,14 +47,14 @@ do_distrorfs_second_stage() { echo installing base packages for pkg in $additional_base_packages_list; do echo Installing $pkg ... - DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 done echo installed additional packages. if [ $6 = desktop ]; then for pkg in task-xfce-desktop; do - DEBIAN_FRONTEND=noninteractive apt -y install $pkg || true + DEBIAN_FRONTEND=noninteractive eatmydata apt -y install $pkg || true done rm -f /etc/systemd/system/display-manager.service @@ -62,10 +62,10 @@ do_distrorfs_second_stage() { echo installing desktop packages list packages for pkg in $additional_desktop_packages_list; do echo Installing $pkg ... - DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 done # remove plymouth - DEBIAN_FRONTEND=noninteractive apt -y remove plymouth || true + DEBIAN_FRONTEND=noninteractive eatmydata apt -y remove plymouth || true echo 'root' >> /etc/deniedusers chmod 600 /etc/deniedusers echo 'auth required pam_listfile.so onerr=succeed item=user sense=deny file=/etc/deniedusers' >> /etc/pam.d/lightdm @@ -88,12 +88,12 @@ do_distrorfs_second_stage() { echo 'syntax on' >> /root/.vimrc echo remove packages. - DEBIAN_FRONTEND=noninteractive apt-get -y remove --purge parole || exit 1 + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y remove --purge parole || exit 1 elif [ $6 = weston ]; then echo installing weston packages list packages for pkg in $additonal_weston_qlauncher_packages_list; do echo Installing $pkg ... - DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 done fi @@ -123,7 +123,7 @@ do_distrorfs_second_stage() { fi # clean cached packages - apt-get clean + eatmydata apt-get clean if [ $1 = arm64 ]; then @@ -161,6 +161,9 @@ do_distrorfs_second_stage() { tr "\n" " " | cut -d' ' -f2,4,6,7,9,10 >> /etc/packages.list i=$[ $i + 4 ] done + # Clean up dpkg.eatmydata + rm -f /usr/bin/dpkg + dpkg-divert --remove --rename /usr/bin/dpkg rm -f packagelist } diff --git a/board/phytium/common/post-custom-skeleton-debian.sh b/board/phytium/common/post-custom-skeleton-debian.sh index 21d1aa46..7c02a2a9 100755 --- a/board/phytium/common/post-custom-skeleton-debian.sh +++ b/board/phytium/common/post-custom-skeleton-debian.sh @@ -71,12 +71,42 @@ do_distrorfs_first_stage() { if [ ! -d $RFSDIR/debootstrap ]; then echo "testdeboot" export LANG=en_US.UTF-8 - sudo debootstrap --keyring=board/phytium/common/debian-archive-$4-stable.gpg --arch=$1 --foreign $4 $RFSDIR https://mirrors.tuna.tsinghua.edu.cn/debian/ + sudo eatmydata debootstrap --foreign --keyring=board/phytium/common/debian-archive-$4-stable.gpg --include=eatmydata --arch=$1 $4 $RFSDIR https://mirrors.tuna.tsinghua.edu.cn/debian/ + + # We need to manually extract eatmydata to use it for the second stage + for archive in $RFSDIR/var/cache/apt/archives/*eatmydata*.deb; do + sudo dpkg-deb --fsys-tarfile "$archive" | sudo tee $RFSDIR/eatmydata > /dev/null + sudo tar -xkf $RFSDIR/eatmydata -C $RFSDIR + sudo rm -f $RFSDIR/eatmydata + + done + # Prepare dpkg to use eatmydata + sudo chroot $RFSDIR dpkg-divert --divert /usr/bin/dpkg-eatmydata --rename --add /usr/bin/dpkg + + lib_arch="aarch64-linux-gnu" +sudo tee $RFSDIR/usr/bin/dpkg < Date: Tue, 24 Jun 2025 14:57:28 +0800 Subject: [PATCH 09/15] remove the linux-headers installed when installing dkms Signed-off-by: lindongping --- board/phytium/common/debian-package-installer | 2 ++ 1 file changed, 2 insertions(+) diff --git a/board/phytium/common/debian-package-installer b/board/phytium/common/debian-package-installer index 95bc7965..e72c0d79 100755 --- a/board/phytium/common/debian-package-installer +++ b/board/phytium/common/debian-package-installer @@ -50,6 +50,8 @@ do_distrorfs_second_stage() { DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $pkg || exit 1 done + dpkg -l | grep linux-headers | cut -d ' ' -f3 | xargs dpkg --purge + dpkg -l | grep linux-kbuild | cut -d ' ' -f3 | xargs dpkg --purge echo installed additional packages. if [ $6 = desktop ]; then -- Gitee From dcfa922267a8090e229fb2a4a43d7e2d80b78d53 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:25:02 +0800 Subject: [PATCH 10/15] linux kernel: update to version v3.2 Signed-off-by: lindongping --- configs/phytiumpi_defconfig | 2 +- configs/phytiumpi_desktop_defconfig | 2 +- configs/phytiumpi_linux_6.6_rt.config | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/phytiumpi_defconfig b/configs/phytiumpi_defconfig index ac28d870..62c9bc3c 100644 --- a/configs/phytiumpi_defconfig +++ b/configs/phytiumpi_defconfig @@ -34,7 +34,7 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git" # kernel 6.6 -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6_v3.1" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6_v3.2" BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/phytiumpi_firefly" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DEFCONFIG="phytium" diff --git a/configs/phytiumpi_desktop_defconfig b/configs/phytiumpi_desktop_defconfig index 964efeaf..4d9b3744 100644 --- a/configs/phytiumpi_desktop_defconfig +++ b/configs/phytiumpi_desktop_defconfig @@ -34,7 +34,7 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git" # kernel 6.6 -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6_v3.1" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6_v3.2" BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/phytiumpi_firefly" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DEFCONFIG="phytium" diff --git a/configs/phytiumpi_linux_6.6_rt.config b/configs/phytiumpi_linux_6.6_rt.config index 3e20455f..b820076c 100644 --- a/configs/phytiumpi_linux_6.6_rt.config +++ b/configs/phytiumpi_linux_6.6_rt.config @@ -1,2 +1,2 @@ # kernel 6.6-rt -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6-rt_v3.1" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6-rt_v3.2" -- Gitee From e6d3e34eeb328ebe2d3d82ea5d402a5b6824da69 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:25:25 +0800 Subject: [PATCH 11/15] xenomai: update to v3.2 Signed-off-by: lindongping --- configs/phytiumpi_xenomai_cobalt_6.6.config | 2 +- configs/phytiumpi_xenomai_mercury_6.6.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/phytiumpi_xenomai_cobalt_6.6.config b/configs/phytiumpi_xenomai_cobalt_6.6.config index a1ac2af3..f87195f3 100644 --- a/configs/phytiumpi_xenomai_cobalt_6.6.config +++ b/configs/phytiumpi_xenomai_cobalt_6.6.config @@ -1,6 +1,6 @@ # cobalt kernel 6.6.y-dovetail BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/linux-kernel-xenomai.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6.63-dovetail2_v3.1" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6.63-dovetail2_v3.2" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/cobalt.config" # xenomai libraries and tools BR2_PACKAGE_XENOMAI=y diff --git a/configs/phytiumpi_xenomai_mercury_6.6.config b/configs/phytiumpi_xenomai_mercury_6.6.config index d9f3e957..f9a59ab6 100644 --- a/configs/phytiumpi_xenomai_mercury_6.6.config +++ b/configs/phytiumpi_xenomai_mercury_6.6.config @@ -1,5 +1,5 @@ # kernel 6.6-rt -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6-rt_v3.1" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="kernel-6.6-rt_v3.2" # xenomai libraries and tools BR2_PACKAGE_XENOMAI=y BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL=y -- Gitee From 5f0f631e13559dcf27240b4050366b9813e4dd7a Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:25:46 +0800 Subject: [PATCH 12/15] igh-ethercat: update to stable-1.6_v4.1 Signed-off-by: lindongping --- package/igh-ethercat/igh-ethercat.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/igh-ethercat/igh-ethercat.mk b/package/igh-ethercat/igh-ethercat.mk index 6a163431..7c394197 100644 --- a/package/igh-ethercat/igh-ethercat.mk +++ b/package/igh-ethercat/igh-ethercat.mk @@ -4,7 +4,7 @@ # ################################################################################ -IGH_ETHERCAT_VERSION = stable-1.6_v3.1 +IGH_ETHERCAT_VERSION = stable-1.6_v4.1 IGH_ETHERCAT_SITE = https://gitee.com/phytium_embedded/ether-cat.git IGH_ETHERCAT_SITE_METHOD = git IGH_ETHERCAT_LICENSE = GPL-2.0 (IgH EtherCAT master), LGPL-2.1 (libraries) -- Gitee From 7e61289185be004d3249d400d22bf3c05706a9ba Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:31:40 +0800 Subject: [PATCH 13/15] optee: update to version v4.6.0 Signed-off-by: lindongping --- configs/phytiumpi_optee.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/phytiumpi_optee.config b/configs/phytiumpi_optee.config index 5edcfcbc..7ed81c78 100644 --- a/configs/phytiumpi_optee.config +++ b/configs/phytiumpi_optee.config @@ -3,5 +3,5 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/phytium_ BR2_PACKAGE_PHYTIUM_OPTEE=y BR2_PACKAGE_PHYTIUM_OPTEE_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-optee.git" -BR2_PACKAGE_PHYTIUM_OPTEE_CUSTOM_REPO_VERSION="v4.5.2" +BR2_PACKAGE_PHYTIUM_OPTEE_CUSTOM_REPO_VERSION="v4.6.0" BR2_PACKAGE_PHYTIUM_OPTEE_BOARD="phytiumpi" -- Gitee From e5f6371f9631bc85a429f18dc628662640b1a47e Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:43:41 +0800 Subject: [PATCH 14/15] README: add kali linux build tools Signed-off-by: lindongping --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 74e3fa4d..8449bb54 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,11 @@ Buildroot被设计为在x86 Linux系统上运行,结合其他因素,本仓 • Source fetching tools: – wget – git +• Kali Linux build tools: +- systemd-container ``` 除此之外,还需要安装如下软件包: -`$ sudo apt install debootstrap qemu-user-static binfmt-support debian-archive-keyring systemd-container eatmydata` +`$ sudo apt install debootstrap qemu-user-static binfmt-support debian-archive-keyring eatmydata` 对于debian12系统,需要设置PATH环境变量:`PATH=$PATH:/usr/sbin` ## 下载Phytium Pi OS并切换到2024.02分支 -- Gitee From a9c0e160079911c251579a68c05d24d2439253b9 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 25 Jun 2025 15:44:10 +0800 Subject: [PATCH 15/15] Phytium Pi OS v2.2 Signed-off-by: lindongping --- board/phytium/common/post-custom-skeleton-debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/phytium/common/post-custom-skeleton-debian.sh b/board/phytium/common/post-custom-skeleton-debian.sh index 7c02a2a9..5ad4467e 100755 --- a/board/phytium/common/post-custom-skeleton-debian.sh +++ b/board/phytium/common/post-custom-skeleton-debian.sh @@ -167,7 +167,7 @@ setup_distribution_info () { echo DISTRIB_ID=Phytium > $tgtfile echo DISTRIB_RELEASE=1.0 >> $tgtfile echo DISTRIB_CODENAME=1.0 >> $tgtfile - echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V2.1"' >> $tgtfile + echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V2.2"' >> $tgtfile tgtfile=$RFSDIR/etc/update-motd.d/00-header echo '#!/bin/sh' > $tgtfile -- Gitee