From 1a44613cd70ed8039f4dd30cc1d388d53324afb6 Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 7 Feb 2025 10:36:04 +0800 Subject: [PATCH 01/32] update linux-headers scripts for debian12 Signed-off-by: lindongping --- .../common/linux-6.6/scripts/asn1_compiler | Bin 73168 -> 73368 bytes .../common/linux-6.6/scripts/basic/fixdep | Bin 71384 -> 71512 bytes .../phytium/common/linux-6.6/scripts/dtc/dtc | Bin 233408 -> 233608 bytes .../common/linux-6.6/scripts/dtc/fdtoverlay | Bin 78632 -> 78784 bytes .../phytium/common/linux-6.6/scripts/kallsyms | Bin 72696 -> 72832 bytes .../common/linux-6.6/scripts/kconfig/conf | Bin 151816 -> 152128 bytes .../common/linux-6.6/scripts/mod/mk_elfconfig | Bin 70624 -> 70672 bytes .../common/linux-6.6/scripts/mod/modpost | Bin 143344 -> 143432 bytes .../common/linux-6.6/scripts/sorttable | Bin 71608 -> 71704 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/board/phytium/common/linux-6.6/scripts/asn1_compiler b/board/phytium/common/linux-6.6/scripts/asn1_compiler index 2a7ae6f4da51739e7a0acf1c07bf8b938c6119ec..b8281252c4516aa44dbcb15af8ffd62bcdf2e351 100755 GIT binary patch literal 73368 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 Ljx!W6B*p&$KB9(5 diff --git a/board/phytium/common/linux-6.6/scripts/basic/fixdep b/board/phytium/common/linux-6.6/scripts/basic/fixdep index 9188a1655a6ef56f38aa7ed396f101a4a1438e7e..286c7e99ba3e994eea3de91f2765ef7d16e93e41 100755 GIT binary patch literal 71512 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 literal 71384 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

1iE)(kIn=lw|50| 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 Oe&yOZ1{#E>+WiAutcBA6 literal 233408 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 Kb(w2@gUr8QOr8u$+jBm@ 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 g{*%|jNUzd4lS|{Ph-VS5$R3No0Sib3ApigX literal 78632 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 J5yPmd{sTOliYEX7 diff --git a/board/phytium/common/linux-6.6/scripts/kallsyms b/board/phytium/common/linux-6.6/scripts/kallsyms index e7021c5c9aea035acdff4fdd0ddf8396a24cac5e..9964d34519324b2a7c1501af9190e7395a2074d7 100755 GIT binary patch literal 72832 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𝔟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 JCN6ODzX5aX6U6`k literal 151816 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 ITv6kH1HTp*h5!Hn diff --git a/board/phytium/common/linux-6.6/scripts/mod/mk_elfconfig b/board/phytium/common/linux-6.6/scripts/mod/mk_elfconfig index f992efcdd16af9ef04786719353e06eb59b08e86..50cff4b886e98d5481976ad25ba889bbb5c0b738 100755 GIT binary patch literal 70672 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 P@h>;}p0Q9ss7n6^wk~2x literal 70624 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 F{}*h%zrp|j diff --git a/board/phytium/common/linux-6.6/scripts/sorttable b/board/phytium/common/linux-6.6/scripts/sorttable index bc39e3ade8972f5d289be32b5ba6e92586c7ddd6..9adb29c346b461c2cea06c61c1e5bd4105259fc7 100755 GIT binary patch literal 71704 zcmeHMe{@vUo&U~zK~N$lArcHqCP4+MMt(#f>RDbU!GMAyjP=*7~LPozW09a_xruy`?=qH-+MQkmn^?a^LR*JI(>(@mYiZEhG;liFr;J9 zBD$Omx{j`;%g~;OTk5&xSz#vS1nBam<7T@>8rMe3X*Nt!%HCOy6K$i3JIifUO0q^{ z|8lJ9i*|eZqU}-2Ln4j=A*CHx*{)C6^$9yEGa@i4<@k7PeEWqzx2!`OUsAFzUn_r^ zXyS7FbyjtReBFjgN@;gL>^RQf^(qjGt3-ce@nVShr4+-ZTU*18x3)Ij(i)De>%1ip zhy_~~R8_{Km2>TJ7sEf#as9my(E0MRuOIu1mLDgc{CVz;zz^t87SKYDn`2;qtiu=U zkGD!T&TX31-KWt`w9UVt>1^nz}Jp}-#-SKL!Y74c+LkSADM&luBULOl5La>Mh+uErk9*rd^(8#}S+(9$ECW!rWaxb9z z<;#4v=Df=J^9PG_7Y-KZSCP5QzrsZCp*7)nA{6tlsBMi#LjFKwYY1_yX^Tcgpr)-l zs-n%3h85w#J@n_Sd9c6O?TOGqolxgT6LYeM18+i*Juaoe98S!7aPge z5*t4x_Bn|g0zaDbSPBwPUT*6r#kv~AMg4%#_rSk%-%dMl=e~8wfy=#sd+2lE`F5Aq zZ^nTS&m()CYv`Bv6?sh%aWO82Y&8`)aA!PI9k_E#@j7rpf#qkG1HVFc3OUDtPjujm z9Jq5_h6BISp}*9DPjcWZ9XRhH@_NXD%N*gh1_$okpIRLFWa$L5-GTF-DX%iG{_e%c zzu$9Fr_^&gZNK>Vt1qQ>^N4I8K-&P(K;fnOY{BuxDX&&`gl*)F*NUx$nvpHg$ZE6d zm!V$as9%A)&rzR*dZVLWg!&VX`V`b(bks{xf6Y;!j{0#&y#jU3Gt~c$s8=}Zvr+ds z>XoQBI_mRKf5K5;fclG$`t7K{X4fSzQl47f+jHqllr77nj<*`fPZQ|=3WHK7z*+DY z^;u)Nw=1WQ@9}ymg;l-k^rN1h(|X?Q^YOf%%tFdygV;LF&{AiDT2FSZ-gDwn_yWI~ zg+{gp`Xyv!GkQtyw{y9jpXxL_IqU4g{wMX+5!912&o0cIG7eIHaZ#Dq=~&pc{m zk3%1;d|x@;nj+Z$7`hp~c=kU)zH%8AvhV)IMiv`-iep$zbaKmuoc~PF*YkaiI!-@Y z(~}whd}(%VZO{359mZ#5Ppv*;%3E66Tp4hoz#(ruU{7<4_4CsmVemJx|;kPb7%VcRAZ4*&Ern8KIWOnZj@r|$QMGs z@VHLY8rkw>l{I$_81wfr=CV(6ieltQ-9@ewI33EhInp zVf9BhrMRzt%q{0xG4iYd>uL+u-{AQBsH0{%`59~YC#)&S3w&<52jhU9XDQmAu-h7Z z-Y(Y7n3QdJV@SV0_x!3d@~llRB>!iok;Ny;R&88zRTcUyhdn*?;%>saVE-B9vE`#4 zK3*I25ldE){{-8@PRoB`_h!;gRxBYubHejno}LFz=BGY|&b7$765OT8ziV*!>zDVi zjt3Zd=ch8ODSP}u%H}rb_v9Wdz3FU}vS)QqFZRCTfNqb!tbjVY$6;Pk&*)QntH)Cz z$5*x#JaSF|Pa`Z`V5Q>aL7_ zb?>oDxt;y@8QC(Tj@$L;N_T0yo@4w7aK`#q8`(2O+b!%T0^@%7OlE9~m8bpSi_43z zM;@Nb*>T0}{>rFytw&;xSgkRwp)6LX&G}(E_-~v?$ZPs-&Oa4Am3fheCv#RF@;qyp ztA6BRIr5O#f-m35R$;9g7{7+Ka-!B=BRn7F-nprRhrj+3XO{5Fx}|7r7KtxezoE!Ph`V~Z7CV5UStHk=km^r5{PLba- zk2!}q&t;BtzH^>)Uh{rCGPmjX%kA;V?Z%-o59YS!NtIFY$)3S=F?Md>0N$Osy+_+) z<#8EscW##ojPr8p7v=Uh?YIVW+ZAg7^$h3s6M}D%+n?!Edr!Y-96TE}vYTem{++XE z|6?<0Kku!)_a%drI)^boh51S%r#E2ExSR&Y^$g~X>lwYYm+PP5dB$^_e3DX~rL>>( z!(NNm^pXz!HSCA>A3vNth<#_(Pc9-iMPKYAd&=|8QlhPA5GVV2M6XJ1c;MMj*v}^P zeYT$aDzW+yzI!wJwY}w=-rrq*q3&>bo~J8!mFMIeS0G0x8`b6cRJ0iTIr7iH1@ByJ zL$%(ne)QD-{A^+0JeG~< zpYww`;kwOrY476JO`mjYc)sCzSu@|LZiJ5H0-oGV37rhDZL$6h z-j|$sx2^vPaDIm{?y&2;2jMHQupDynS-s=w%dsCA#{K*ZWX}2dxkx-ei}PRHEuTea z#GDwD$$GY0TtT1bhdEnlEbL0ov*)zm=lzj3(Z~igPZ#!$Rm|1P7#r_T$!Vj<@zP~> z92^7pFZZn~>{}kJJ-Kfnj$W%i!}fCqIcU|9S5{0Kjp+NU=-X<8E#6VKW-w>v&(v)T zCM!~!mVEo{h1|~B;8p0%9@N>SuMQ^5Q<^9F_HUsR=KL1#99uri`5Sz9TDfEB^rPcJ z%*8WxhjE6~#eQCP=mxUT)uz~aE_E-|ZnNG|HeEAK+PrGdt(70*eR^wogZ*B59{uw( z=zYk0>^vEsM+U#A7}<}}z7p*xkZ1fYKp5{6I^Iu`m8o*<;X&vegAUKj%+dUG&$ayg z96EnAT6=Pi)&3sZ7mU{4J>P2oG1@CfYd7rne@FX`Xy^6yhuqg;EYorS5_8&*HFq5O z@S%=%$Ls4i^;sQl`1W~w9s1dh+rmG>w-NTvXD;MQ(z-eLO^LPv@{0Em$i?_JNn?#8 z7yHVO)n@~+8NhoS;X9P=-1_B2KdQK}`EX7Cmag&(HQQe0{Ta5tf%nlE z{ypp4_tZqnofmqf>T9X6`deE{FU_QE^=5r?^=4z+SF!i;H~NA+y8p;y(~Hg_ z#v?^ki05GMY25sseg@+?i}6fG9-N8Z?^Nk9r)o4R}|0rHE3S zwJB>~y_Dl`!L6rZ&(AA<_65^3EML609XOA7Cyez4Jl~m<@8Il&{Si&Rryq6pm(dm< z+3xVi-|PJCZhf!M0KYT&d;JGiUUHfH;WqANl*aRB2e1`j;`Q?FHZm16w-t!~F$ z3=Sr9%qasL*c?snWgV-%fREN~o$d3ekad2p6|cqf$>Qi0!4b#H&v5SN3B(-*N6ZiR zcL4l2`U6LHe*|APhm(6*NA!0;`m=PnKh}}`IXS!p4hQ)|c{KhwjuqgK=SrTRInT~K zq!C~1;(;}x+r4}&o!~QM?_+J&zg#LSE3M;>c%5a?jU4Z_q?o4LcjD$i>p(a7o@NqFu!PY=LJ~S@)9m|Cm zp*2QZhxg~1rr+^8oR{D(_)RXi5{s%Jo68+Ty#aCnaw}w>2M-X)sgT}tx!j$Qb0Akj z8jwwpDOLuLM}&$m#+d_kZ0p6%Ilo&nU-H>VN-$Md^VTEyB<-^`01>7Gwv2( za~Q+Ln1TB#V0S|D<;87%%mQ1=K+PoY*Yo!3zHQpQKl_iv)=@Xxb>cn-9eH-o*fY3~ z0+Z+GjCJFF$A#?&*5|?w0ecgeJlkhmo{K{+YyjBnE{x|W?efR-_0KNsW?%<^v2VUu z;vIqZyZl)PRW7UrdM`Wtd11Q=*h|0+l$ob(dE0g0v)W$I@^=ou`?E>p1#-rj=tynsSiE8|G^}w%c^@lO9V)?9B%GJE**kT=74+-pLgxmET6UPGhsQb z9mSnC@eKSO_$ZfqlM|q3QbyZ$^Y$= zyIawdx)cM70mXn~Krx^gPz)#r6a$I@#eiZ!F`yVw3@8Q^1BwB~fMP%~pcqgLCmkTNTKcBP51K3i%BrWxMFAT>^s8i(CaC|B~Jt{7D!69v4-+A?-h8T zz-73r1fFr>4+?z1h5xa@NjxZIzYPK}aN!|=dj(#AI$wW=o5wXr;4+?wzzr837x+q- z|4xB72;4xOuP)pcZvtOxp+tKHKH$=SMc{M95-1Q4wjT=I5HA3Rz-4}RyXM!P_mTUI ztv{8vA}Z(gD^xrnQ{s|`UkiMf(3kjc1m5k!|6AZMxp2GRLQ1>V*T>NRymi!P4+L8F zbpe9;bmNx(mGloatuyb%1cAH$_T6FBoA_a#BI@H29soNwum#2*p<<@=!Q z*XCj5KHO~i8Hr2Y8eF{D_)whE|5$uVKa0wxrY-;6>KD%o7tXDt&C51R|Kptdxv&Q~ zjq*JDhR}CEFYIX@`F#8V^o!V)>pDIL{wZ*;OP8y=kltP-gZsHt0KC94ztVI%@CsRR z$VI>l9d%i}8~A8(hJmyHeXe|a)WS;!^Gf<@WIx)-eZFN3KMB^C#t!+^82Ap$&qyBr zW(@uPz`YK?viPsS3$>B!sBa8E{j5(z&rSLMJurs8h7XI;##ID-G(PuOeukdo{5<2U zWDNZ>fy;GmYZHCR>UU_Ld{aC~=2*DY8j`*-a6fS7$L+rXxOd2Wu(WXuKV6J#Bi{#7 zW9ZZBU@S4WGD_Dsk!c1R!)79|hOX}ww~M8Gs11_xh)uNYY)UiW~kHhWX_*A0$NZt2*pCJ zfkgPR5Q0OuRsiM~W9IsBqQz_qBmxveM6@2U@fhNXb{0MG~Obk;s&AV3BtXN_$xwp?*rzNrJ{9d-6}Hc zm*3~BS#I8U*IlcZ_)UL}Z}}2fn62T)pczjDVhOV?5RMr2%a{3T&3TpctEfE`i$!CD z$lQfwF7vN2hX(IoQOiU3Thy9nV>~WAvEyK8fQJ@n4Q~uNeZ&)RFwAQQr-f6+3|Z7$ z%)k@-4MmzTz-W7DC_=>37HW%!hMQWmW`{wTnE0^1O><3KG~x)dDIPUj0+A-9MxfCh z#j^XL*%XeL>*Ap%iYH>hwsvQjZEb;Jbq*5Y+Mzn=ASRZY*T=$%VbQd$i?}_Qpj1vK zb1l^h2woJtAmd8S|csLpvRx#1Wi;N9Ksl7Ep zm7Km*nZU}WO3r$;MXi~x47G?nZ)t+9tl1WJ!rKNRtL5-Hij&r_tFEi`5PQcudYXy>y#S(oQ7QX0aZ zJ0qV4G5Oz|^?>u3Scb?(bc9*?8Ka$e@@?;D*r{~=EV!_Dsrec@A zJN|BAFZq|}QBodtC5+@xx_!xIFVC%{d|fIE>F)pAE_->tC1oBbz2kECpGMmx+)_=R zgQYLpMs9ssm-0=hUFEQs=Vga}M|;js&K=pm{C?^a_8GyS%rDum%!7W|vWm2q-&6a< ziP$2vIWK81<%ei=+RJmgkA(eJr!mUXPRif9?B#b=r{$I3(T88sPNJt#U`)m@-;qt$n!3xtRi*y{%^O*{ literal 71608 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 -- Gitee From dd26c009577abf4ef2c7dd119d8d172a9c6101ec Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 15:07:00 +0800 Subject: [PATCH 02/32] add udev script for monitor hotplug Signed-off-by: lindongping --- board/phytium/common/debian-package-installer | 8 +----- .../phytium-desktop-tools.mk | 4 +++ .../src/99-monitor-hotplug.rules | 1 + .../src/auto_resolution.sh | 28 +++++++++++++++++++ 4 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 package/phytium-desktop-tools/src/99-monitor-hotplug.rules create mode 100755 package/phytium-desktop-tools/src/auto_resolution.sh diff --git a/board/phytium/common/debian-package-installer b/board/phytium/common/debian-package-installer index 7dda5305..7338c705 100755 --- a/board/phytium/common/debian-package-installer +++ b/board/phytium/common/debian-package-installer @@ -53,17 +53,11 @@ do_distrorfs_second_stage() { echo installed additional packages. if [ $6 = desktop ]; then - for pkg in task-xfce-desktop arctica-greeter; do + for pkg in task-xfce-desktop; do DEBIAN_FRONTEND=noninteractive apt -y install $pkg || true - rm -rf /usr/share/arctica-greeter/backgrounds/arctica-greeter.png || true - rm -rf /usr/share/arctica-greeter/logo.png || 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=arctica-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 diff --git a/package/phytium-desktop-tools/phytium-desktop-tools.mk b/package/phytium-desktop-tools/phytium-desktop-tools.mk index 89541c1b..20d994e1 100644 --- a/package/phytium-desktop-tools/phytium-desktop-tools.mk +++ b/package/phytium-desktop-tools/phytium-desktop-tools.mk @@ -18,6 +18,8 @@ define PHYTIUM_DESKTOP_TOOLS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/alsa/ucm2/ mkdir -p $(TARGET_DIR)/usr/share/alsa/ucm2/conf.d/simple-card/ mkdir -p $(TARGET_DIR)/usr/share/alsa/ucm2/conf.d/PMDK-I2S/ + mkdir -p $(TARGET_DIR)/usr/local/bin/ + mkdir -p $(TARGET_DIR)/etc/udev/rules.d/ $(INSTALL) -m 777 -D $(@D)/dark.jpg $(TARGET_DIR)/usr/share/images/desktop-base/ $(INSTALL) -m 755 -D $(@D)/01_debian.conf $(TARGET_DIR)/usr/share/lightdm/lightdm-gtk-greeter.conf.d/ $(INSTALL) -m 755 -D $(@D)/xfce4-desktop.xml $(TARGET_DIR)/usr/share/desktop-base/profiles/xdg-config/xfce4/xfconf/xfce-perchannel-xml/ @@ -25,6 +27,8 @@ define PHYTIUM_DESKTOP_TOOLS_INSTALL_TARGET_CMDS cp -rf $(@D)/Phytium/ $(TARGET_DIR)/usr/share/alsa/ucm2/ $(INSTALL) -m 755 -D $(@D)/switch_to_headphone.sh $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 644 -D $(@D)/sound_output_device_switching.desktop $(TARGET_DIR)/usr/share/alsa/ucm2/ + $(INSTALL) -m 755 -D $(@D)/auto_resolution.sh $(TARGET_DIR)/usr/local/bin/ + $(INSTALL) -m 644 -D $(@D)/99-monitor-hotplug.rules $(TARGET_DIR)/etc/udev/rules.d/ endef $(eval $(generic-package)) diff --git a/package/phytium-desktop-tools/src/99-monitor-hotplug.rules b/package/phytium-desktop-tools/src/99-monitor-hotplug.rules new file mode 100644 index 00000000..bdfa70d3 --- /dev/null +++ b/package/phytium-desktop-tools/src/99-monitor-hotplug.rules @@ -0,0 +1 @@ +SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/auto_resolution.sh" diff --git a/package/phytium-desktop-tools/src/auto_resolution.sh b/package/phytium-desktop-tools/src/auto_resolution.sh new file mode 100755 index 00000000..38dd6ef9 --- /dev/null +++ b/package/phytium-desktop-tools/src/auto_resolution.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# check if on the greeter interface +IS_GREETER=$(loginctl show-session $(loginctl | grep 'lightdm' | awk '{print $1}') --property=State | grep -q "active" && echo "yes" || echo "no") +if [[ "$IS_GREETER" != "yes" ]]; then + exit 0 +fi + +export DISPLAY=:0 +export XAUTHORITY=$HOME/.Xauthority + +if [[ ! -e "$XAUTHORITY" ]]; then + touch "$XAUTHORITY" +fi + +xauth add $(xauth -f /var/run/lightdm/root/:0 list) + +# check the connection status of the screen +connected_output=$(xrandr --query | grep " connected" | awk '{print $1}') +for output in $connected_output; do + # set the optimal resolution + preferred_mode=$(xrandr --query | grep -A 1 "^$output" | tail -n 1 | awk '{print $1}') + if [ -n "$preferred_mode" ]; then + echo "Setting $output to $preferred_mode" + xrandr --output "$output" --mode "$preferred_mode" + fi +done + -- Gitee From dffe18acbf53a1bd3f6a4bcd811967323b155512 Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 18 Feb 2025 15:39:27 +0800 Subject: [PATCH 03/32] phytium-firstlogin: fix error when hdmi is not connected Signed-off-by: lindongping --- package/phytium-firstlogin/src/phytium-firstlogin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/phytium-firstlogin/src/phytium-firstlogin b/package/phytium-firstlogin/src/phytium-firstlogin index 1e7ea471..b44b9183 100755 --- a/package/phytium-firstlogin/src/phytium-firstlogin +++ b/package/phytium-firstlogin/src/phytium-firstlogin @@ -502,7 +502,7 @@ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then systemctl is-system-running --wait > /dev/null # enable hiDPI support - if [[ "$(cut -d, -f1 < /sys/class/graphics/fb0/virtual_size 2> /dev/null)" -gt 1920 ]]; then + if [[ "$( (cut -d, -f1 < /sys/class/graphics/fb0/virtual_size) 2> /dev/null)" -gt 1920 ]]; then # lightdm [[ -f /etc/lightdm/slick-greeter.conf ]] && echo "enable-hidpi = on" >> /etc/lightdm/slick-greeter.conf # xfce -- Gitee From 46050ab81de2db3cfceb725f636666ffd47db954 Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 29 Nov 2024 16:34:32 +0800 Subject: [PATCH 04/32] phytium-ota support rootfs update Signed-off-by: lindongping --- README.md | 2 +- board/phytium/common/debian-package-installer | 4 + .../fitImage/latest/5.10/fitImage.hash | 1 + .../latest/5.10/linux-headers-5.10.deb.hash | 1 + .../latest/5.10/linux-image-5.10.deb.hash | 1 + .../phytium-ota-hash/rootfs/latest/lscpu.hash | 1 + .../latest/phytium-desktop-tools.deb.hash | 1 + .../rootfs/latest/phytium-firstlogin.deb.hash | 1 + .../rootfs/latest/phytium-vpu.deb.hash | 1 + .../rootfs/latest/phytium-zram.deb.hash | 1 + .../rootfs/latest/rootfs-chown.deb.hash | 1 + .../uboot/v1.5/fip-all-optee-2GB.bin.hash | 1 - .../uboot/v1.5/fip-all-optee-4GB.bin.hash | 1 - package/phytium-tools/src/phytium_ota | 102 ++++++++++++++++-- 14 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash create mode 100644 package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash diff --git a/README.md b/README.md index 4cf68a95..6df92a71 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ LINUX_OVERRIDE_SRCDIR指定了一个本地的内核源码目录,这样就不 `$ sudo phytium_ota all latest` `$ sudo phytium_ota uboot latest` `$ sudo phytium_ota fitImage latest` -以上三条命令通过远程分别将uboot+Image+dtb、uboot和Image+dtb升级到最新版本。 +以上三条命令通过远程分别将整个系统、uboot和Image+dtb升级到最新版本。关于phytium_ota更多信息,可以参考[phytium_ota介绍与使用](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) # 编译内核模块 关于如何编译内核外部模块,可参考https://www.kernel.org/doc/html/latest/kbuild/modules.html diff --git a/board/phytium/common/debian-package-installer b/board/phytium/common/debian-package-installer index 7338c705..67e71864 100755 --- a/board/phytium/common/debian-package-installer +++ b/board/phytium/common/debian-package-installer @@ -81,6 +81,10 @@ do_distrorfs_second_stage() { 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 diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash new file mode 100644 index 00000000..4c7c7f03 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash @@ -0,0 +1 @@ +sha256 26a9c047d93bc7b30582bca8a226c3cc41c864b2d5a21d07064b4634b654e9cf fitImage diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash new file mode 100644 index 00000000..16668804 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash @@ -0,0 +1 @@ +sha256 a7bd6c50d40e4c827654033496757200c5f3dbfda630c5ae7c0ac43e15e64f9f linux-headers-5.10.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash new file mode 100644 index 00000000..4a640f56 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash @@ -0,0 +1 @@ +sha256 ab0b82ebf36925a7bb389d1f26db2c04f675ddcf9e4276850dde51e05c5e5fd3 linux-image-5.10.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash new file mode 100644 index 00000000..72630ae8 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash @@ -0,0 +1 @@ +sha256 12775525aa3723f5ac1ae045ebecfda74c1b17579293100f5b4ad0599706e18d lscpu diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash new file mode 100644 index 00000000..22c62e74 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash @@ -0,0 +1 @@ +sha256 20ce018fcf8ccd9bfaa086784ccda952ad4692bf892f9b49751f77cecb323f1e phytium-desktop-tools.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash new file mode 100644 index 00000000..b60b6edf --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash @@ -0,0 +1 @@ +sha256 9a832a7b7a88beac69d6bf4e06f55f006343aba66760b3ac799c0930c923775d phytium-firstlogin.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash new file mode 100644 index 00000000..d1652f02 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash @@ -0,0 +1 @@ +sha256 604180b8e915a8fde270511ef51936b67ca01ac766e1da0ced0f06a33c555eff phytium-vpu.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash new file mode 100644 index 00000000..449b22b5 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash @@ -0,0 +1 @@ +sha256 018619e90dd03f06fd7558f5640df9d2e10451bfc3d912178005a4dfc81b279a phytium-zram.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash new file mode 100644 index 00000000..acd79f64 --- /dev/null +++ b/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash @@ -0,0 +1 @@ +sha256 52a42810d478918d0e2b2c1a552f4ecb6088437ddd20eea513c965d06ee35ac2 rootfs-chown.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash b/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash index 6da303ba..8702bafc 100644 --- a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash +++ b/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash @@ -1,2 +1 @@ sha256 5ea39ddf7bcfd8ff1b3448fa0c71847a9c1e653f2cdd2cfc2451f813d8c946e4 fip-all-optee-2GB.bin - diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash b/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash index 80d83247..e105bdb3 100644 --- a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash +++ b/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash @@ -1,2 +1 @@ sha256 7cc1bed898467814362553ace772ece3031819d1f62616ea6a66981014e72567 fip-all-optee-4GB.bin - diff --git a/package/phytium-tools/src/phytium_ota b/package/phytium-tools/src/phytium_ota index 98d392df..c0e1d204 100755 --- a/package/phytium-tools/src/phytium_ota +++ b/package/phytium-tools/src/phytium_ota @@ -22,7 +22,7 @@ usage() { Example 2: sudo $0 fitImage latest --update fitImage to the latest Example 3: sudo $0 all latest - --update uboot and fit Image to the latest" + --update uboot,fitImage and rootfs to the latest" } while true; do @@ -132,7 +132,9 @@ get_uboot_and_fitImage() { rm -rf $download_dir mkdir -p $download_dir - + + apt install -y git + git clone -b develop --depth 1 $download_site $download_dir if [ "$?" != "0" ]; then echo -e "\033[1;31mget uboot and fitImage failed\033[0m" @@ -144,18 +146,93 @@ get_uboot_and_fitImage() { } # get_uboot_and_fitImage +install_and_remove_packages() { + apt install -y locales audacity jq network-manager + apt remove -y dhcpcd5 +} # install_and_remove_package + +rootfs_configure() { + # rootfs-chown + systemctl enable systemd-rootfs-chown.service + # phytium-zram + systemctl enable phytium-zram-config.service + # phytium-vpu + systemctl enable phytium-vpu.service + + # disable default sink + sed -i 's/^default-sink = alsa_output.platform-sound.stereo-fallback/#&/' "/etc/pulse/client.conf" + # set kernel loglevel + sed -i 's/#kernel.printk = 3 4 1 3/kernel.printk = 4 4 1 7/' "/etc/sysctl.d/99-sysctl.conf" + # set the name of the sound output devices + sed -i 's/^update-sink-proplist 1 device.description=Headphone/#&/' "/etc/pulse/default.pa" + sed -i 's/^set-default-sink 1/#&/' "/etc/pulse/default.pa" + if ! grep -q '^update-sink-proplist 0 device.description=HDMI' "/etc/pulse/default.pa"; then + echo 'update-sink-proplist 0 device.description=HDMI' >> "/etc/pulse/default.pa" + fi + if ! grep -q '^load-module module-switch-on-connect' "/etc/pulse/default.pa"; then + echo 'load-module module-switch-on-connect' >> "/etc/pulse/default.pa" + fi + # enable ping for user + if [ ! -e "/etc/sysctl.d/10-custom-ping-group.conf" ]; then + echo 'net.ipv4.ping_group_range=1000 1000' >> "/etc/sysctl.d/10-custom-ping-group.conf" + fi + # set release message + echo DISTRIB_ID=Phytium > /etc/lsb-release + echo DISTRIB_RELEASE=1.0 >> /etc/lsb-release + echo DISTRIB_CODENAME=1.0 >> /etc/lsb-release + echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V1.6"' >> /etc/lsb-release + sed -i 's/ID=Phytium/ID=debian/' "/usr/lib/os-release" + echo '#!/bin/sh' > /etc/update-motd.d/10-help-text + echo 'printf "\n"' >> /etc/update-motd.d/10-help-text + echo 'printf " * Support: https://gitee.com/phytium_embedded/phytium-pi-os\n"' >> /etc/update-motd.d/10-help-text + chmod +x /etc/update-motd.d/00-header + chmod +x /etc/update-motd.d/10-help-text + chmod -x /etc/update-motd.d/10-uname + echo -n > $RFSDIR/etc/motd + # cups disable TLSv1.0 and TLSv1.1 + if [ -f /etc/cups/cupsd.conf ]; then + if ! grep -q '^SSLOptions MinTLS1.2' "/etc/cups/cupsd.conf"; then + echo "SSLOptions MinTLS1.2" >> "/etc/cups/cupsd.conf" + fi + 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 + if ! grep -q '^MACs hmac-sha2-256,hmac-sha2-512' "/etc/ssh/sshd_config"; then + echo "MACs hmac-sha2-256,hmac-sha2-512" >> "/etc/ssh/sshd_config" + fi + fi + # rm display-manager for phytium-firstlogin + rm -f /etc/systemd/system/display-manager.service + # touch .desktop_firstrun for phytium-firstlogin + if [ ! -e "/root/.desktop_firstlogin" ]; then + touch /root/.desktop_firstlogin + fi + # touch for phytium-firstlogin + if [ ! -e "/root/.not_logged_in_yet" ]; then + touch /root/.not_logged_in_yet + fi +} # rootfs_configure + # replace_uboot_and_fitImage # $1: can be all\uboot\fitImage # $2: can be latest\v1.5\msata, etc replace_uboot_and_fitImage() { if [ "$1" == "all" ]; then - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin - check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb - + echo -e "\033[1;32mdownload phytium-tools...\033[0m" + dpkg -i $dest_dir/rootfs/$2/phytium-tools.deb + echo -e "\033[1;32mcheck hash...\033[0m" + check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin + check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb + check-hash $hash_dir/rootfs/$2/phytium-desktop-tools.deb.hash $dest_dir/rootfs/$2/phytium-desktop-tools.deb phytium-desktop-tools.deb + check-hash $hash_dir/rootfs/$2/phytium-firstlogin.deb.hash $dest_dir/rootfs/$2/phytium-firstlogin.deb phytium-firstlogin.deb + check-hash $hash_dir/rootfs/$2/phytium-vpu.deb.hash $dest_dir/rootfs/$2/phytium-vpu.deb phytium-vpu.deb + check-hash $hash_dir/rootfs/$2/phytium-zram.deb.hash $dest_dir/rootfs/$2/phytium-zram.deb phytium-zram.deb + check-hash $hash_dir/rootfs/$2/rootfs-chown.deb.hash $dest_dir/rootfs/$2/rootfs-chown.deb rootfs-chown.deb echo -e "\033[1;32mupdate uboot...\033[0m" # to preserve the partition table. dd if=/dev/mmcblk0 of=start.img bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 @@ -166,6 +243,15 @@ replace_uboot_and_fitImage() { dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb + echo -e "\033[1;32mupdate rootfs...\033[0m" + install_and_remove_packages + cp -f $dest_dir/rootfs/$2/lscpu /usr/bin/ + dpkg -i $dest_dir/rootfs/$2/phytium-desktop-tools.deb + dpkg -i $dest_dir/rootfs/$2/phytium-firstlogin.deb + dpkg -i $dest_dir/rootfs/$2/phytium-vpu.deb + dpkg -i $dest_dir/rootfs/$2/phytium-zram.deb + dpkg -i $dest_dir/rootfs/$2/rootfs-chown.deb + rootfs_configure elif [ "$1" == "uboot" ]; then echo -e "\033[1;32mcheck hash...\033[0m" check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin -- Gitee From 75448e2168605b1c39a58cce0359c5b593bbcfb0 Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 5 Dec 2024 14:41:44 +0800 Subject: [PATCH 05/32] add package phytium-ota Signed-off-by: lindongping --- configs/phytiumpi_defconfig | 3 + configs/phytiumpi_desktop_defconfig | 3 + package/Config.in | 1 + package/phytium-ota/Config.in | 2 + package/phytium-ota/phytium-ota.mk | 23 +++ .../src/check-hash | 0 package/phytium-ota/src/check-latest | 48 +++++ .../fitImage/latest/5.10/fitImage.hash | 0 .../latest/5.10/linux-headers-5.10.deb.hash | 0 .../latest/5.10/linux-image-5.10.deb.hash | 0 .../phytium-ota-hash/rootfs/latest/lscpu.hash | 0 .../latest/phytium-desktop-tools.deb.hash | 0 .../rootfs/latest/phytium-firstlogin.deb.hash | 0 .../rootfs/latest/phytium-tools.deb.hash | 2 + .../rootfs/latest/phytium-vpu.deb.hash | 0 .../rootfs/latest/phytium-zram.deb.hash | 0 .../rootfs/latest/rootfs-chown.deb.hash | 0 .../uboot/5g/fip-all-5g-4GB.bin.hash | 0 .../uboot/latest/fip-all-optee-2GB.bin.hash | 0 .../uboot/latest/fip-all-optee-4GB.bin.hash | 0 .../uboot/msata/fip-all-msata-4GB.bin.hash | 0 .../uboot/v1.5/fip-all-optee-2GB.bin.hash | 0 .../uboot/v1.5/fip-all-optee-4GB.bin.hash | 0 .../fitImage/fitImage_latest.hash | 1 + .../rootfs/rootfs_latest.hash | 1 + .../uboot/uboot_latest.hash | 2 + .../src/phytium_ota | 177 +++++++----------- package/phytium-ota/src/rootfs_ota | 81 ++++++++ package/phytium-tools/phytium-tools.mk | 4 - .../fitImage/latest/6.6/fitImage.hash | 1 - .../latest/6.6/linux-headers-6.6.deb.hash | 1 - .../latest/6.6/linux-image-6.6.deb.hash | 1 - 32 files changed, 235 insertions(+), 116 deletions(-) create mode 100644 package/phytium-ota/Config.in create mode 100644 package/phytium-ota/phytium-ota.mk rename package/{phytium-tools => phytium-ota}/src/check-hash (100%) create mode 100755 package/phytium-ota/src/check-latest rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/lscpu.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash (100%) create mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash (100%) rename package/{phytium-tools => phytium-ota}/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash (100%) create mode 100644 package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash create mode 100644 package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash create mode 100644 package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash rename package/{phytium-tools => phytium-ota}/src/phytium_ota (45%) create mode 100755 package/phytium-ota/src/rootfs_ota delete mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/fitImage.hash delete mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-headers-6.6.deb.hash delete mode 100644 package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-image-6.6.deb.hash diff --git a/configs/phytiumpi_defconfig b/configs/phytiumpi_defconfig index 7012aa06..061096d3 100644 --- a/configs/phytiumpi_defconfig +++ b/configs/phytiumpi_defconfig @@ -68,6 +68,9 @@ BR2_PACKAGE_PHYTIUM_FIRSTLOGIN=y # Phytium_zram BR2_PACKAGE_PHYTIUM_ZRAM=y +# Phytium_ota +BR2_PACKAGE_PHYTIUM_OTA=y + # util-linux BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y diff --git a/configs/phytiumpi_desktop_defconfig b/configs/phytiumpi_desktop_defconfig index ec39ff68..7744fae7 100644 --- a/configs/phytiumpi_desktop_defconfig +++ b/configs/phytiumpi_desktop_defconfig @@ -66,6 +66,9 @@ BR2_PACKAGE_PHYTIUM_FIRSTLOGIN=y # Phytium_zram BR2_PACKAGE_PHYTIUM_ZRAM=y +# Phytium_ota +BR2_PACKAGE_PHYTIUM_OTA=y + BR2_PACKAGE_ROOTFS_DESKTOP=y BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt board/phytium/common/desktop_device_table.txt" BR2_PACKAGE_BUSYBOX=n diff --git a/package/Config.in b/package/Config.in index 4786aeb3..4541689c 100644 --- a/package/Config.in +++ b/package/Config.in @@ -260,6 +260,7 @@ menu "Filesystem and flash utilities" source "package/kernel-headers/Config.in" source "package/phytium-firstlogin/Config.in" source "package/phytium-zram/Config.in" + source "package/phytium-ota/Config.in" endmenu menu "Fonts, cursors, icons, sounds and themes" diff --git a/package/phytium-ota/Config.in b/package/phytium-ota/Config.in new file mode 100644 index 00000000..85c7dabd --- /dev/null +++ b/package/phytium-ota/Config.in @@ -0,0 +1,2 @@ +config BR2_PACKAGE_PHYTIUM_OTA + bool "phytium_ota" diff --git a/package/phytium-ota/phytium-ota.mk b/package/phytium-ota/phytium-ota.mk new file mode 100644 index 00000000..46384ffd --- /dev/null +++ b/package/phytium-ota/phytium-ota.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# phytium-ota +# +################################################################################ + +PHYTIUM_OTA_VERSION = 0.1 +PHYTIUM_OTA_SITE = package/phytium-ota/src +PHYTIUM_OTA_SITE_METHOD = local +PHYTIUM_OTA_INSTALL_TARGET = YES + +define PHYTIUM_OTA_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/bin + mkdir -p $(TARGET_DIR)/usr/lib/phytium/ + $(INSTALL) -m 755 -D $(@D)/phytium_ota $(TARGET_DIR)/usr/bin/ + $(INSTALL) -m 755 -D $(@D)/check-hash $(TARGET_DIR)/usr/bin/ + $(INSTALL) -m 755 -D $(@D)/check-latest $(TARGET_DIR)/usr/bin/ + $(INSTALL) -m 755 -D $(@D)/rootfs_ota $(TARGET_DIR)/usr/bin/ + cp -rf $(@D)/phytium-ota-hash/ $(TARGET_DIR)/usr/lib/phytium/ + cp -rf $(@D)/phytium-ota-latest/ $(TARGET_DIR)/usr/lib/phytium/ +endef + +$(eval $(generic-package)) diff --git a/package/phytium-tools/src/check-hash b/package/phytium-ota/src/check-hash similarity index 100% rename from package/phytium-tools/src/check-hash rename to package/phytium-ota/src/check-hash diff --git a/package/phytium-ota/src/check-latest b/package/phytium-ota/src/check-latest new file mode 100755 index 00000000..0aea00b6 --- /dev/null +++ b/package/phytium-ota/src/check-latest @@ -0,0 +1,48 @@ +#!/bin/bash +set -e + +latest_dir="/usr/lib/phytium/phytium-ota-latest" + +mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem") +mem_info=$(echo $mem_info | awk '{print $2}') +memory_total=$(( mem_info * 1024 )) +# compare to 3GB +if [ $memory_total -ge 3221225472 ]; then + mem=4GB +else + mem=2GB +fi + +if [ $2 = "uboot" ]; then + _hash=$( sha256sum "$1/$2/latest/fip-all-optee-$mem.bin" |cut -d ' ' -f 1 ) +elif [ $2 = "fitImage" ]; then + _hash=$( sha256sum "$1/$2/latest/5.10/$2.tar" |cut -d ' ' -f 1 ) +elif [ $2 = "rootfs" ]; then + _hash=$( sha256sum "$1/$2/latest/$2.tar" |cut -d ' ' -f 1 ) +fi + +if [ ! -e "$latest_dir/$2/$2_latest.hash" ]; then + mkdir -p $latest_dir/$2 + if [ $2 = "uboot" ]; then + echo "sha256 ${_hash} fip-all-optee-$mem.bin" > $latest_dir/$2/$2_latest.hash + else + echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash + fi + echo "no_latest" + exit +else + _known=$(cat $latest_dir/$2/$2_latest.hash | cut -d ' ' -f 3) +fi + +# Do the hashes match? +if [ "${_hash}" = "${_known}" ]; then + echo "latest" +else + mkdir -p $latest_dir/$2 + if [ $2 = "uboot" ]; then + echo "sha256 ${_hash} fip-all-optee-$mem.bin" > $latest_dir/$2/$2_latest.hash + else + echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash + fi + echo "no_latest" +fi diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash rename to package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/lscpu.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash new file mode 100644 index 00000000..dc6d3f41 --- /dev/null +++ b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash @@ -0,0 +1,2 @@ +sha256 51365d89cde46b7e9397675c9d90540a90ff38d4ba9b78e2d035a2b7c0113de3 phytium-tools.deb + diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash rename to package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash diff --git a/package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash similarity index 100% rename from package/phytium-tools/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash rename to package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash diff --git a/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash b/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash new file mode 100644 index 00000000..f386af46 --- /dev/null +++ b/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash @@ -0,0 +1 @@ +sha256 f668e6a510588b93e13514a090c24c84395ca51cf53787185c8e625ddea37175 fitImage.tar diff --git a/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash new file mode 100644 index 00000000..db4f0b1e --- /dev/null +++ b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash @@ -0,0 +1 @@ +sha256 f4cf68c7804912a56c81e4c02ef7b78d50a64ce9bb0984d278b45c3cc6404f5c rootfs.tar diff --git a/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash new file mode 100644 index 00000000..80d83247 --- /dev/null +++ b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash @@ -0,0 +1,2 @@ +sha256 7cc1bed898467814362553ace772ece3031819d1f62616ea6a66981014e72567 fip-all-optee-4GB.bin + diff --git a/package/phytium-tools/src/phytium_ota b/package/phytium-ota/src/phytium_ota similarity index 45% rename from package/phytium-tools/src/phytium_ota rename to package/phytium-ota/src/phytium_ota index c0e1d204..9e3f815a 100755 --- a/package/phytium-tools/src/phytium_ota +++ b/package/phytium-ota/src/phytium_ota @@ -146,112 +146,65 @@ get_uboot_and_fitImage() { } # get_uboot_and_fitImage -install_and_remove_packages() { - apt install -y locales audacity jq network-manager - apt remove -y dhcpcd5 -} # install_and_remove_package - -rootfs_configure() { - # rootfs-chown - systemctl enable systemd-rootfs-chown.service - # phytium-zram - systemctl enable phytium-zram-config.service - # phytium-vpu - systemctl enable phytium-vpu.service - - # disable default sink - sed -i 's/^default-sink = alsa_output.platform-sound.stereo-fallback/#&/' "/etc/pulse/client.conf" - # set kernel loglevel - sed -i 's/#kernel.printk = 3 4 1 3/kernel.printk = 4 4 1 7/' "/etc/sysctl.d/99-sysctl.conf" - # set the name of the sound output devices - sed -i 's/^update-sink-proplist 1 device.description=Headphone/#&/' "/etc/pulse/default.pa" - sed -i 's/^set-default-sink 1/#&/' "/etc/pulse/default.pa" - if ! grep -q '^update-sink-proplist 0 device.description=HDMI' "/etc/pulse/default.pa"; then - echo 'update-sink-proplist 0 device.description=HDMI' >> "/etc/pulse/default.pa" - fi - if ! grep -q '^load-module module-switch-on-connect' "/etc/pulse/default.pa"; then - echo 'load-module module-switch-on-connect' >> "/etc/pulse/default.pa" - fi - # enable ping for user - if [ ! -e "/etc/sysctl.d/10-custom-ping-group.conf" ]; then - echo 'net.ipv4.ping_group_range=1000 1000' >> "/etc/sysctl.d/10-custom-ping-group.conf" - fi - # set release message - echo DISTRIB_ID=Phytium > /etc/lsb-release - echo DISTRIB_RELEASE=1.0 >> /etc/lsb-release - echo DISTRIB_CODENAME=1.0 >> /etc/lsb-release - echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V1.6"' >> /etc/lsb-release - sed -i 's/ID=Phytium/ID=debian/' "/usr/lib/os-release" - echo '#!/bin/sh' > /etc/update-motd.d/10-help-text - echo 'printf "\n"' >> /etc/update-motd.d/10-help-text - echo 'printf " * Support: https://gitee.com/phytium_embedded/phytium-pi-os\n"' >> /etc/update-motd.d/10-help-text - chmod +x /etc/update-motd.d/00-header - chmod +x /etc/update-motd.d/10-help-text - chmod -x /etc/update-motd.d/10-uname - echo -n > $RFSDIR/etc/motd - # cups disable TLSv1.0 and TLSv1.1 - if [ -f /etc/cups/cupsd.conf ]; then - if ! grep -q '^SSLOptions MinTLS1.2' "/etc/cups/cupsd.conf"; then - echo "SSLOptions MinTLS1.2" >> "/etc/cups/cupsd.conf" - fi - 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 - if ! grep -q '^MACs hmac-sha2-256,hmac-sha2-512' "/etc/ssh/sshd_config"; then - echo "MACs hmac-sha2-256,hmac-sha2-512" >> "/etc/ssh/sshd_config" - fi - fi - # rm display-manager for phytium-firstlogin - rm -f /etc/systemd/system/display-manager.service - # touch .desktop_firstrun for phytium-firstlogin - if [ ! -e "/root/.desktop_firstlogin" ]; then - touch /root/.desktop_firstlogin - fi - # touch for phytium-firstlogin - if [ ! -e "/root/.not_logged_in_yet" ]; then - touch /root/.not_logged_in_yet - fi -} # rootfs_configure - # replace_uboot_and_fitImage # $1: can be all\uboot\fitImage # $2: can be latest\v1.5\msata, etc replace_uboot_and_fitImage() { + + echo -e "\033[1;32minstalling phytium-ota...\033[0m" + dpkg -i $dest_dir/rootfs/$2/phytium-ota.deb if [ "$1" == "all" ]; then - echo -e "\033[1;32mdownload phytium-tools...\033[0m" - dpkg -i $dest_dir/rootfs/$2/phytium-tools.deb - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin - check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb - check-hash $hash_dir/rootfs/$2/phytium-desktop-tools.deb.hash $dest_dir/rootfs/$2/phytium-desktop-tools.deb phytium-desktop-tools.deb - check-hash $hash_dir/rootfs/$2/phytium-firstlogin.deb.hash $dest_dir/rootfs/$2/phytium-firstlogin.deb phytium-firstlogin.deb - check-hash $hash_dir/rootfs/$2/phytium-vpu.deb.hash $dest_dir/rootfs/$2/phytium-vpu.deb phytium-vpu.deb - check-hash $hash_dir/rootfs/$2/phytium-zram.deb.hash $dest_dir/rootfs/$2/phytium-zram.deb phytium-zram.deb - check-hash $hash_dir/rootfs/$2/rootfs-chown.deb.hash $dest_dir/rootfs/$2/rootfs-chown.deb rootfs-chown.deb - echo -e "\033[1;32mupdate uboot...\033[0m" - # to preserve the partition table. - dd if=/dev/mmcblk0 of=start.img bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 - dd if=$dest_dir/uboot/$2/$uboot_bin of=/dev/mmcblk0 bs=1M count=4 >> $dest_dir/uboot/$2/replace.log 2>&1 - dd if=start.img of=/dev/mmcblk0 bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 - rm -f start.img - echo -e "\033[1;32mupdate fitImage...\033[0m" - dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb - echo -e "\033[1;32mupdate rootfs...\033[0m" - install_and_remove_packages - cp -f $dest_dir/rootfs/$2/lscpu /usr/bin/ - dpkg -i $dest_dir/rootfs/$2/phytium-desktop-tools.deb - dpkg -i $dest_dir/rootfs/$2/phytium-firstlogin.deb - dpkg -i $dest_dir/rootfs/$2/phytium-vpu.deb - dpkg -i $dest_dir/rootfs/$2/phytium-zram.deb - dpkg -i $dest_dir/rootfs/$2/rootfs-chown.deb - rootfs_configure + uboot_latest=$(check-latest $dest_dir uboot) + if [ "${uboot_latest}" = "latest" ]; then + echo -e "\033[1;32muboot is already latest, nothing to do...\033[0m" + else + echo -e "\033[1;32mcheck hash...\033[0m" + check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin + echo -e "\033[1;32mupdate uboot...\033[0m" + # to preserve the partition table. + dd if=/dev/mmcblk0 of=start.img bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 + dd if=$dest_dir/uboot/$2/$uboot_bin of=/dev/mmcblk0 bs=1M count=4 >> $dest_dir/uboot/$2/replace.log 2>&1 + dd if=start.img of=/dev/mmcblk0 bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 + rm -f start.img + fi + fitImage_latest=$(check-latest $dest_dir fitImage) + if [ "${fitImage_latest}" = "latest" ]; then + echo -e "\033[1;32mkernel is already latest, nothing to do...\033[0m" + else + tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ + echo -e "\033[1;32mcheck hash...\033[0m" + check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb + echo -e "\033[1;32mupdate fitImage...\033[0m" + dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 + dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb + dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb + fi + rootfs_latest=$(check-latest $dest_dir rootfs) + if [ "${rootfs_latest}" = "latest" ]; then + echo -e "\033[1;32mrootfs is already latest, nothing to do...\033[0m" + else + tar -xvf $dest_dir/rootfs/$2/rootfs.tar -C $dest_dir/rootfs/$2/ + echo -e "\033[1;32mcheck hash...\033[0m" + check-hash $hash_dir/rootfs/$2/phytium-desktop-tools.deb.hash $dest_dir/rootfs/$2/phytium-desktop-tools.deb phytium-desktop-tools.deb + check-hash $hash_dir/rootfs/$2/phytium-firstlogin.deb.hash $dest_dir/rootfs/$2/phytium-firstlogin.deb phytium-firstlogin.deb + check-hash $hash_dir/rootfs/$2/phytium-vpu.deb.hash $dest_dir/rootfs/$2/phytium-vpu.deb phytium-vpu.deb + check-hash $hash_dir/rootfs/$2/phytium-zram.deb.hash $dest_dir/rootfs/$2/phytium-zram.deb phytium-zram.deb + check-hash $hash_dir/rootfs/$2/rootfs-chown.deb.hash $dest_dir/rootfs/$2/rootfs-chown.deb rootfs-chown.deb + check-hash $hash_dir/rootfs/$2/phytium-tools.deb.hash $dest_dir/rootfs/$2/phytium-tools.deb phytium-tools.deb + check-hash $hash_dir/rootfs/$2/lscpu.hash $dest_dir/rootfs/$2/lscpu lscpu + echo -e "\033[1;32mupdate rootfs...\033[0m" + cp -f $dest_dir/rootfs/$2/lscpu /usr/bin/ + dpkg -i $dest_dir/rootfs/$2/phytium-desktop-tools.deb + dpkg -i $dest_dir/rootfs/$2/phytium-firstlogin.deb + dpkg -i $dest_dir/rootfs/$2/phytium-vpu.deb + dpkg -i $dest_dir/rootfs/$2/phytium-zram.deb + dpkg -i $dest_dir/rootfs/$2/rootfs-chown.deb + dpkg -i $dest_dir/rootfs/$2/phytium-tools.deb + rootfs_ota + fi elif [ "$1" == "uboot" ]; then echo -e "\033[1;32mcheck hash...\033[0m" check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin @@ -263,15 +216,21 @@ replace_uboot_and_fitImage() { dd if=start.img of=/dev/mmcblk0 bs=512 count=1 >> $dest_dir/$1/$2/replace.log 2>&1 rm -f start.img elif [ "$1" == "fitImage" ]; then - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb - - echo -e "\033[1;32mupdate fitImage...\033[0m" - dd if=$dest_dir/$1/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/$1/$2/$kernel_version/replace.log 2>&1 - dpkg -i $dest_dir/$1/$2/$kernel_version/linux-headers-$kernel_version.deb - dpkg -i $dest_dir/$1/$2/$kernel_version/linux-image-$kernel_version.deb + tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ + fitImage_latest=$(check-latest $dest_dir fitImage) + if [ "${fitImage_latest}" = "latest" ]; then + echo -e "\033[1;32mkernel is already latest, nothing to do...\033[0m" + else + tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ + echo -e "\033[1;32mcheck hash...\033[0m" + check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb + check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb + echo -e "\033[1;32mupdate fitImage...\033[0m" + dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 + dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb + dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb + fi else echo -e "\033[1;31margs error, exit\033[0m" fi diff --git a/package/phytium-ota/src/rootfs_ota b/package/phytium-ota/src/rootfs_ota new file mode 100755 index 00000000..86f234ca --- /dev/null +++ b/package/phytium-ota/src/rootfs_ota @@ -0,0 +1,81 @@ +#!/bin/bash + +# Phytium phytiumpi rootfs_ota script +# +# Copyright (c) 2024 Phytium Technology Co., Ltd. +# +# rootfs_ota - To update rootfs to the latest for phytiumpi development board. +# + + +install_and_remove_packages() { + apt install -y locales audacity jq network-manager + apt remove -y dhcpcd5 +} # install_and_remove_package + +rootfs_configure() { + # rootfs-chown + systemctl enable systemd-rootfs-chown.service + # phytium-zram + systemctl enable phytium-zram-config.service + # phytium-vpu + systemctl enable phytium-vpu.service + + # disable default sink + sed -i 's/^default-sink = alsa_output.platform-sound.stereo-fallback/#&/' "/etc/pulse/client.conf" + # set kernel loglevel + sed -i 's/#kernel.printk = 3 4 1 3/kernel.printk = 4 4 1 7/' "/etc/sysctl.d/99-sysctl.conf" + # set the name of the sound output devices + sed -i 's/^update-sink-proplist 1 device.description=Headphone/#&/' "/etc/pulse/default.pa" + sed -i 's/^set-default-sink 1/#&/' "/etc/pulse/default.pa" + if ! grep -q '^update-sink-proplist 0 device.description=HDMI' "/etc/pulse/default.pa"; then + echo 'update-sink-proplist 0 device.description=HDMI' >> "/etc/pulse/default.pa" + fi + if ! grep -q '^load-module module-switch-on-connect' "/etc/pulse/default.pa"; then + echo 'load-module module-switch-on-connect' >> "/etc/pulse/default.pa" + fi + # enable ping for user + if [ ! -e "/etc/sysctl.d/10-custom-ping-group.conf" ]; then + echo 'net.ipv4.ping_group_range=1000 1000' >> "/etc/sysctl.d/10-custom-ping-group.conf" + fi + # set release message + echo DISTRIB_ID=Phytium > /etc/lsb-release + echo DISTRIB_RELEASE=1.0 >> /etc/lsb-release + echo DISTRIB_CODENAME=1.0 >> /etc/lsb-release + echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V1.6"' >> /etc/lsb-release + sed -i 's/ID=Phytium/ID=debian/' "/usr/lib/os-release" + echo '#!/bin/sh' > /etc/update-motd.d/10-help-text + echo 'printf "\n"' >> /etc/update-motd.d/10-help-text + echo 'printf " * Support: https://gitee.com/phytium_embedded/phytium-pi-os\n"' >> /etc/update-motd.d/10-help-text + chmod +x /etc/update-motd.d/00-header + chmod +x /etc/update-motd.d/10-help-text + chmod -x /etc/update-motd.d/10-uname + echo -n > $RFSDIR/etc/motd + # cups disable TLSv1.0 and TLSv1.1 + if [ -f /etc/cups/cupsd.conf ]; then + if ! grep -q '^SSLOptions MinTLS1.2' "/etc/cups/cupsd.conf"; then + echo "SSLOptions MinTLS1.2" >> "/etc/cups/cupsd.conf" + fi + 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 + if ! grep -q '^MACs hmac-sha2-256,hmac-sha2-512' "/etc/ssh/sshd_config"; then + echo "MACs hmac-sha2-256,hmac-sha2-512" >> "/etc/ssh/sshd_config" + fi + fi + # rm display-manager for phytium-firstlogin + rm -f /etc/systemd/system/display-manager.service + # touch .desktop_firstrun for phytium-firstlogin + if [ ! -e "/root/.desktop_firstlogin" ]; then + touch /root/.desktop_firstlogin + fi + # touch for phytium-firstlogin + if [ ! -e "/root/.not_logged_in_yet" ]; then + touch /root/.not_logged_in_yet + fi +} # rootfs_configure + +install_and_remove_packages +rootfs_configure diff --git a/package/phytium-tools/phytium-tools.mk b/package/phytium-tools/phytium-tools.mk index 08b527b5..d5ef1096 100644 --- a/package/phytium-tools/phytium-tools.mk +++ b/package/phytium-tools/phytium-tools.mk @@ -16,7 +16,6 @@ define PHYTIUM_TOOLS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware/rtw88/ mkdir -p $(TARGET_DIR)/lib/firmware/rtl_bt/ mkdir -p $(TARGET_DIR)/etc/modprobe.d/ - mkdir -p $(TARGET_DIR)/usr/lib/phytium/ $(INSTALL) -m 755 -D $(@D)/rtlbt/* $(TARGET_DIR)/lib/firmware/rtlbt/ $(INSTALL) -m 755 -D $(@D)/rtk_hciattach $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/resize.sh $(TARGET_DIR)/usr/bin/ @@ -27,10 +26,7 @@ define PHYTIUM_TOOLS_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/rtlbt/rtl8821c_config $(TARGET_DIR)/lib/firmware/rtl_bt/rtl8821c_config.bin $(INSTALL) -m 755 -D $(@D)/rtlbt/rtl8821c_fw $(TARGET_DIR)/lib/firmware/rtl_bt/rtl8821c_fw.bin $(INSTALL) -m 755 -D $(@D)/rtw88.conf $(TARGET_DIR)/etc/modprobe.d/ - $(INSTALL) -m 755 -D $(@D)/phytium_ota $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/quectel-CM $(TARGET_DIR)/usr/bin/ - $(INSTALL) -m 755 -D $(@D)/check-hash $(TARGET_DIR)/usr/bin/ - cp -rf $(@D)/phytium-ota-hash/ $(TARGET_DIR)/usr/lib/phytium/ endef $(eval $(generic-package)) diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/fitImage.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/fitImage.hash deleted file mode 100644 index fcd7f715..00000000 --- a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/fitImage.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 7227f5d936e30ada647381b6b07010bc837d2167399c35abdf02c24255743fa9 fitImage diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-headers-6.6.deb.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-headers-6.6.deb.hash deleted file mode 100644 index 54f25259..00000000 --- a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-headers-6.6.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 a2e62b56a15589ef3952e70b96d9d64056bf0fc16170f92bd22c5fc6f54b0d56 linux-headers-6.6.deb diff --git a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-image-6.6.deb.hash b/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-image-6.6.deb.hash deleted file mode 100644 index 4e034910..00000000 --- a/package/phytium-tools/src/phytium-ota-hash/fitImage/latest/6.6/linux-image-6.6.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 daaa543f0e58eb7886dc1585874828d5734b5b6e913f870134f53dc0e02e846d linux-image-6.6.deb -- Gitee From c89f67210ad6222577217c3531ee79753213b9fa Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 7 Mar 2025 11:56:37 +0800 Subject: [PATCH 06/32] add firmware config scripts and set uboot default to hw v3, mem 4g and pcie usb3. Signed-off-by: lindongping --- board/phytium/common/post-build.sh | 2 + .../phytium-firstlogin/src/phytium-firstlogin | 58 +++++++ package/phytium-tools/phytium-tools.mk | 8 + .../pad_set_v2.x.bin.hash | 1 + .../pad_set_v3.bin.hash | 1 + .../para_5g_usb3.bin.hash | 1 + .../para_msata.bin.hash | 1 + .../para_nvme_usb2.bin.hash | 1 + .../src/firmware-configure/pad_set_v2.x.bin | Bin 0 -> 1088 bytes .../src/firmware-configure/pad_set_v3.bin | Bin 0 -> 1088 bytes .../src/firmware-configure/para_5g_usb3.bin | Bin 0 -> 1568 bytes .../src/firmware-configure/para_msata.bin | Bin 0 -> 1568 bytes .../src/firmware-configure/para_nvme_usb2.bin | Bin 0 -> 1568 bytes package/phytium-tools/src/ft-config | 161 ++++++++++++++++++ package/phytium-tools/src/init_pwm_fan.sh | 10 ++ package/phytium-tools/src/pwm-fan.service | 9 + package/phytium-tools/src/pwm_fan.sh | 16 ++ 17 files changed, 269 insertions(+) create mode 100644 package/phytium-tools/src/firmware-configure-hash/pad_set_v2.x.bin.hash create mode 100644 package/phytium-tools/src/firmware-configure-hash/pad_set_v3.bin.hash create mode 100644 package/phytium-tools/src/firmware-configure-hash/para_5g_usb3.bin.hash create mode 100644 package/phytium-tools/src/firmware-configure-hash/para_msata.bin.hash create mode 100644 package/phytium-tools/src/firmware-configure-hash/para_nvme_usb2.bin.hash create mode 100644 package/phytium-tools/src/firmware-configure/pad_set_v2.x.bin create mode 100644 package/phytium-tools/src/firmware-configure/pad_set_v3.bin create mode 100644 package/phytium-tools/src/firmware-configure/para_5g_usb3.bin create mode 100644 package/phytium-tools/src/firmware-configure/para_msata.bin create mode 100644 package/phytium-tools/src/firmware-configure/para_nvme_usb2.bin create mode 100755 package/phytium-tools/src/ft-config create mode 100755 package/phytium-tools/src/init_pwm_fan.sh create mode 100644 package/phytium-tools/src/pwm-fan.service create mode 100755 package/phytium-tools/src/pwm_fan.sh diff --git a/board/phytium/common/post-build.sh b/board/phytium/common/post-build.sh index e49ee3e4..6b6db45b 100755 --- a/board/phytium/common/post-build.sh +++ b/board/phytium/common/post-build.sh @@ -20,6 +20,8 @@ main() if grep -Eq "^BR2_PACKAGE_PHYTIUM_ZRAM=y$" ${BR2_CONFIG}; then sudo chroot ${1} systemctl enable phytium-zram-config.service fi + # pwm-fan.service + sudo chroot ${1} systemctl enable pwm-fan.service exit $? } diff --git a/package/phytium-firstlogin/src/phytium-firstlogin b/package/phytium-firstlogin/src/phytium-firstlogin index b44b9183..982d9383 100755 --- a/package/phytium-firstlogin/src/phytium-firstlogin +++ b/package/phytium-firstlogin/src/phytium-firstlogin @@ -475,6 +475,59 @@ add_user() { } +fm_patch_dir="/lib/firmware/uboot-patch" +fm_patch_hash_dir="/lib/firmware/uboot-patch-hash" +fm_patch_check_dd_dir="/lib/firmware/uboot-patch-check-dd" +# check if the dd command was successful. +# $1: the file to be checked. +# $2: the starting position of the file to be checked in the firmware. +# $3: the size of the file to be checked. +check-if-dd-success() { + mkdir -p $fm_patch_check_dd_dir + file=$(basename $1 .bin) + dd if=/dev/mmcblk0 of=$fm_patch_check_dd_dir/recovered_$file.bin bs=$2 skip=1 count=1 + dd if=$fm_patch_check_dd_dir/recovered_$file.bin of=$fm_patch_check_dd_dir/final_$file.bin bs=1 count=$3 + _hash=$(sha256sum $fm_patch_check_dd_dir/final_$file.bin | cut -d ' ' -f 1 ) + _known=$(cat $fm_patch_hash_dir/$1.hash | cut -d ' ' -f 3 ) + # Do the hashes match? + if [ "${_hash}" = "${_known}" ]; then + echo -e "\033[1;32mHash verification succeeded, configuration has been updated.\033[0m" + else + echo -e "\033[1;31mHash verification failed, configuration update encountered an error. You may need to manually update the firmware. See https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8的启动异常补救措施小节\033[0m" + exit 1 + fi +} +firmware_configure(){ + echo "" + echo -e "Configure firmware." + flag=0 + unset response + while [[ ! "${response}" =~ ^(Y|y|N|n)$ ]]; do + read -r -p "Is the phytiumpi hardware version v2? [Y/n] " response + echo "$response" + done + if [[ "${response}" =~ ^(Y|y)$ ]]; then + check-hash $fm_patch_hash_dir/pad_set_v2.x.bin.hash $fm_patch_dir/pad_set_v2.x.bin pad_set_v2.x.bin + dd if=$fm_patch_dir/pad_set_v2.x.bin of=/dev/mmcblk0 bs=1000k seek=1 && sync + check-if-dd-success pad_set_v2.x.bin 1000k 1088 + flag=1 + systemctl disable pwm-fan.service + fi + echo "" + unset response + while [[ ! "${response}" =~ ^(Y|y|N|n)$ ]]; do + read -r -p "Is the memory size 8GB? [Y/n] " response + echo "$response" + done + if [[ "${response}" =~ ^(Y|y)$ ]]; then + printf "\x11" | dd of=/dev/mmcblk0 bs=1 count=1 conv=notrunc seek=1004390 && sync + flag=1 + fi + if [[ flag == 1 ]]; then + echo "the firmware has change, please power reset after desktop started." + fi + echo "" +} if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then do_firstrun_automated_network_configuration @@ -609,6 +662,11 @@ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then rm /root/.desktop_firstlogin fi + # ask user to configure firmware + trap '' 2 + firmware_configure + trap - INT TERM EXIT + if [[ ${USER_SHELL} == zsh ]]; then printf "\nYou selected \e[0;91mZSH\x1B[0m as your default shell. If you want to use it right away, please logout and login! \n\n" fi diff --git a/package/phytium-tools/phytium-tools.mk b/package/phytium-tools/phytium-tools.mk index d5ef1096..e65446a9 100644 --- a/package/phytium-tools/phytium-tools.mk +++ b/package/phytium-tools/phytium-tools.mk @@ -16,6 +16,8 @@ define PHYTIUM_TOOLS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware/rtw88/ mkdir -p $(TARGET_DIR)/lib/firmware/rtl_bt/ mkdir -p $(TARGET_DIR)/etc/modprobe.d/ + mkdir -p $(TARGET_DIR)/lib/firmware/uboot-patch + mkdir -p $(TARGET_DIR)/lib/firmware/uboot-patch-hash $(INSTALL) -m 755 -D $(@D)/rtlbt/* $(TARGET_DIR)/lib/firmware/rtlbt/ $(INSTALL) -m 755 -D $(@D)/rtk_hciattach $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/resize.sh $(TARGET_DIR)/usr/bin/ @@ -27,6 +29,12 @@ define PHYTIUM_TOOLS_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/rtlbt/rtl8821c_fw $(TARGET_DIR)/lib/firmware/rtl_bt/rtl8821c_fw.bin $(INSTALL) -m 755 -D $(@D)/rtw88.conf $(TARGET_DIR)/etc/modprobe.d/ $(INSTALL) -m 755 -D $(@D)/quectel-CM $(TARGET_DIR)/usr/bin/ + $(INSTALL) -D -m 644 $(@D)/firmware-configure/* $(TARGET_DIR)/lib/firmware/uboot-patch/ + $(INSTALL) -D -m 644 $(@D)/firmware-configure-hash/* $(TARGET_DIR)/lib/firmware/uboot-patch-hash/ + $(INSTALL) -D -m 755 $(@D)/ft-config $(TARGET_DIR)/usr/bin + $(INSTALL) -m 644 -D $(@D)/pwm-fan.service $(TARGET_DIR)/lib/systemd/system/ + $(INSTALL) -m 755 -D $(@D)/init_pwm_fan.sh $(TARGET_DIR)/usr/bin + $(INSTALL) -m 755 -D $(@D)/pwm_fan.sh $(TARGET_DIR)/usr/bin endef $(eval $(generic-package)) diff --git a/package/phytium-tools/src/firmware-configure-hash/pad_set_v2.x.bin.hash b/package/phytium-tools/src/firmware-configure-hash/pad_set_v2.x.bin.hash new file mode 100644 index 00000000..1f5bae73 --- /dev/null +++ b/package/phytium-tools/src/firmware-configure-hash/pad_set_v2.x.bin.hash @@ -0,0 +1 @@ +sha256 63201c49e7197a7501af239965be221a161ea89634039a76d76e1cee787da23f pad_set_v2.x.bin diff --git a/package/phytium-tools/src/firmware-configure-hash/pad_set_v3.bin.hash b/package/phytium-tools/src/firmware-configure-hash/pad_set_v3.bin.hash new file mode 100644 index 00000000..2ea5f1a0 --- /dev/null +++ b/package/phytium-tools/src/firmware-configure-hash/pad_set_v3.bin.hash @@ -0,0 +1 @@ +sha256 1165c42d19fe8d9dfcb8836ddbacbbd5e6da1b488bd6c024a9701c8ae0ed7737 pad_set_v3.bin diff --git a/package/phytium-tools/src/firmware-configure-hash/para_5g_usb3.bin.hash b/package/phytium-tools/src/firmware-configure-hash/para_5g_usb3.bin.hash new file mode 100644 index 00000000..57f4c876 --- /dev/null +++ b/package/phytium-tools/src/firmware-configure-hash/para_5g_usb3.bin.hash @@ -0,0 +1 @@ +sha256 912b81b648134348999087da1cf45a5c482d8f7f3f1107598eef5cfec40b82e7 para_5g_usb3.bin diff --git a/package/phytium-tools/src/firmware-configure-hash/para_msata.bin.hash b/package/phytium-tools/src/firmware-configure-hash/para_msata.bin.hash new file mode 100644 index 00000000..f56c5878 --- /dev/null +++ b/package/phytium-tools/src/firmware-configure-hash/para_msata.bin.hash @@ -0,0 +1 @@ +sha256 9a0ef620ae19a0d4ccff0e23442939e81c52130a81b16eb0306c7ff639511953 para_msata.bin diff --git a/package/phytium-tools/src/firmware-configure-hash/para_nvme_usb2.bin.hash b/package/phytium-tools/src/firmware-configure-hash/para_nvme_usb2.bin.hash new file mode 100644 index 00000000..c15fbad4 --- /dev/null +++ b/package/phytium-tools/src/firmware-configure-hash/para_nvme_usb2.bin.hash @@ -0,0 +1 @@ +sha256 1e5e9a5b9f900343cd5d8242d90fc949e231f68e6c939fa0e6f133a5824664d7 para_nvme_usb2.bin diff --git a/package/phytium-tools/src/firmware-configure/pad_set_v2.x.bin b/package/phytium-tools/src/firmware-configure/pad_set_v2.x.bin new file mode 100644 index 0000000000000000000000000000000000000000..caf33a75f98557fadde5da396a965fe0188a625b GIT binary patch literal 1088 zcmXxiFEDIz7{>9#+^|8|uwyoC5ClQEbLR$O!`Zdgh7H07K@bE%5R4H7!3;qV1VIo4 zK`?V~6a+yK1VIo4K@fx+1i|;Y`?ck>&-=c=Kj-X@7u~^LG5nO@j^@jsUvpT&62~Id zDyCaA*X=iS#(Gmr?PyQ?I5$!h3)sRzGUqH>Uy7WwY=6c2YGiIr*R5}0oB1u>#@u^H zcXc1L{y-10#k!;P@mNpvRL>&o&auPXgwGmm$~a?p6kYZn@s&q?=kmy&`0Y} zk$s*q`@HC@{WpErfBJ#5oc9@7SBwnvk4UcI|KCxoTGP5VbRx3NB(_*TrPKOTe`A}u znaEsIOYLY6^E`cB&;jOsE=KxGx~wahd#~!6uIq+wMfTaooU^05k@vE%2YRSSk@;iu z32u^4t)J<+{R_R+E6o4&T5t4L?=a7IuMhgDPx`Dc`l@d@%ldcyz%KbSa?fIPXa(EE gF|A_$*EOwcLnm|+=b4)_Ph&}LYKb|oqdo2G7tKl8dH?_b literal 0 HcmV?d00001 diff --git a/package/phytium-tools/src/firmware-configure/pad_set_v3.bin b/package/phytium-tools/src/firmware-configure/pad_set_v3.bin new file mode 100644 index 0000000000000000000000000000000000000000..831422ce0b043daf68059c1ba9dc9ea9b9fc80e4 GIT binary patch literal 1088 zcmXxiElfgT7{&3cGY|{}<_H9Xfk1H1Kpv5DWwZfnXpQ z+%y^t1OkCTAQ%V)f`MQ#5IjfzQhuE0dG7nZ_v0WaR_}xDFZ_4ce_l@tG9p8{Z&i&- zcVpx@{RF0|XE4M(mar@fJ3&y9Sy^?~J{QjN(pme|=+~V!cV*RYV3YbaxrJ@%bKl|} zcIbEUL1wj2&wcrbeH`GE)p|pj*W5F{P=B+kzssWLKAd&l5qa#a`UI!a_c6mc^-rsH z7Sii1aYg?N*Z7S;@=W_}tgZ`owt3GgN95mo#3;rvjtM-pTINXleIzl3$9O7pnoC>F zWiZ4%mZa~ej1{a(KhF!R{w3D1E`9DRY+w_wv1PSRTY8^cyt8^P9qi%*_N?X~$$fdF zJfQxBL;BD7g74Db=?9K*j1%emo8k=T_=yW#;tIdynXX^sk1Q&0tj-ziZjH#C;yy;D dzv~#rF@cA8B+oUMB&TGkoWW3fzdV+(jKAcd*?|B6 literal 0 HcmV?d00001 diff --git a/package/phytium-tools/src/firmware-configure/para_5g_usb3.bin b/package/phytium-tools/src/firmware-configure/para_5g_usb3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1876b998ba0e6656a75e3711c01189baedabc71c GIT binary patch literal 1568 zcmY#ja0_8#00Kr3!N9=54#9U=85lOOFfc@bB_VRdkyHfwALvcE|3OS(5MTgiCPoGj zh5?WoZ0cb0LxmOw`XB5osMiFUhlUXoIbJ)g-i?^)-p0oh=UXoIbJ)g-i?^)-p0oh= /sys/class/pwm/pwmchip0/export +cd /sys/class/pwm/pwmchip0/pwm1/ +echo 25000 > period +# echo 15000 > duty_cycle #fan slow +echo 24000 > duty_cycle #fan fast +echo normal > polarity +echo 1 > enable +. /usr/bin/pwm_fan.sh & diff --git a/package/phytium-tools/src/pwm-fan.service b/package/phytium-tools/src/pwm-fan.service new file mode 100644 index 00000000..d5c0f79d --- /dev/null +++ b/package/phytium-tools/src/pwm-fan.service @@ -0,0 +1,9 @@ +[Unit] +Description=pwm fan process +After=network.target +[Service] +Type=forking +ExecStart=/usr/bin/init_pwm_fan.sh +User=root +[Install] +WantedBy=multi-user.target diff --git a/package/phytium-tools/src/pwm_fan.sh b/package/phytium-tools/src/pwm_fan.sh new file mode 100755 index 00000000..cb188629 --- /dev/null +++ b/package/phytium-tools/src/pwm_fan.sh @@ -0,0 +1,16 @@ +#!/bin/bash +THRESHOLD_TEMP=50 +while true; +do + sleep 30s + CPU_TEMP=$(cat /sys/class/thermal/thermal_zone0/temp) + CPU_TEMP_C=$((CPU_TEMP / 1000)) + #echo "$CPU_TEMP_C" + if [ "$CPU_TEMP_C" -gt "$THRESHOLD_TEMP" ]; then + #echo "pwm fast" + echo 24000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle + else + #echo "pwm slow" + echo 12000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle + fi +done -- Gitee From 2f3b1d4af56f6ea49ee2b99bcd62f634aef69b75 Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 28 Feb 2025 17:01:39 +0800 Subject: [PATCH 07/32] phytium-ota: place the upgrade scripts on remote gitee Signed-off-by: lindongping --- package/phytium-ota/phytium-ota.mk | 6 +- package/phytium-ota/src/check-latest | 20 +- package/phytium-ota/src/get_phytium_ota | 138 ++++++++++ .../fitImage/latest/5.10/fitImage.hash | 1 - .../latest/5.10/linux-headers-5.10.deb.hash | 1 - .../latest/5.10/linux-image-5.10.deb.hash | 1 - .../phytium-ota-hash/rootfs/latest/lscpu.hash | 1 - .../latest/phytium-desktop-tools.deb.hash | 1 - .../rootfs/latest/phytium-firstlogin.deb.hash | 1 - .../rootfs/latest/phytium-tools.deb.hash | 2 - .../rootfs/latest/phytium-vpu.deb.hash | 1 - .../rootfs/latest/phytium-zram.deb.hash | 1 - .../rootfs/latest/rootfs-chown.deb.hash | 1 - .../uboot/5g/fip-all-5g-4GB.bin.hash | 1 - .../uboot/latest/fip-all-optee-2GB.bin.hash | 1 - .../uboot/latest/fip-all-optee-4GB.bin.hash | 1 - .../uboot/msata/fip-all-msata-4GB.bin.hash | 1 - .../uboot/v1.5/fip-all-optee-2GB.bin.hash | 1 - .../uboot/v1.5/fip-all-optee-4GB.bin.hash | 1 - .../rootfs/rootfs_latest.hash | 2 +- .../uboot/uboot_latest.hash | 2 +- package/phytium-ota/src/phytium_ota | 254 ------------------ package/phytium-ota/src/rootfs_ota | 81 ------ 23 files changed, 147 insertions(+), 373 deletions(-) create mode 100755 package/phytium-ota/src/get_phytium_ota delete mode 100644 package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash delete mode 100644 package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash delete mode 100755 package/phytium-ota/src/phytium_ota delete mode 100755 package/phytium-ota/src/rootfs_ota diff --git a/package/phytium-ota/phytium-ota.mk b/package/phytium-ota/phytium-ota.mk index 46384ffd..26a6eb7f 100644 --- a/package/phytium-ota/phytium-ota.mk +++ b/package/phytium-ota/phytium-ota.mk @@ -12,12 +12,10 @@ PHYTIUM_OTA_INSTALL_TARGET = YES define PHYTIUM_OTA_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/bin mkdir -p $(TARGET_DIR)/usr/lib/phytium/ - $(INSTALL) -m 755 -D $(@D)/phytium_ota $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/check-hash $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/check-latest $(TARGET_DIR)/usr/bin/ - $(INSTALL) -m 755 -D $(@D)/rootfs_ota $(TARGET_DIR)/usr/bin/ - cp -rf $(@D)/phytium-ota-hash/ $(TARGET_DIR)/usr/lib/phytium/ - cp -rf $(@D)/phytium-ota-latest/ $(TARGET_DIR)/usr/lib/phytium/ + $(INSTALL) -m 755 -D $(@D)/get_phytium_ota $(TARGET_DIR)/usr/bin/ + cp -rf $(@D)/phytium-ota-latest/ $(TARGET_DIR)/usr/lib/phytium/ endef $(eval $(generic-package)) diff --git a/package/phytium-ota/src/check-latest b/package/phytium-ota/src/check-latest index 0aea00b6..9709bab7 100755 --- a/package/phytium-ota/src/check-latest +++ b/package/phytium-ota/src/check-latest @@ -3,28 +3,18 @@ set -e latest_dir="/usr/lib/phytium/phytium-ota-latest" -mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem") -mem_info=$(echo $mem_info | awk '{print $2}') -memory_total=$(( mem_info * 1024 )) -# compare to 3GB -if [ $memory_total -ge 3221225472 ]; then - mem=4GB -else - mem=2GB -fi - if [ $2 = "uboot" ]; then - _hash=$( sha256sum "$1/$2/latest/fip-all-optee-$mem.bin" |cut -d ' ' -f 1 ) + _hash=$( sha256sum "$1/$2/fip-all-optee-4GB.bin" |cut -d ' ' -f 1 ) elif [ $2 = "fitImage" ]; then - _hash=$( sha256sum "$1/$2/latest/5.10/$2.tar" |cut -d ' ' -f 1 ) + _hash=$( sha256sum "$1/$2/5.10/$2.tar" |cut -d ' ' -f 1 ) elif [ $2 = "rootfs" ]; then - _hash=$( sha256sum "$1/$2/latest/$2.tar" |cut -d ' ' -f 1 ) + _hash=$( sha256sum "$1/$2/$2.tar" |cut -d ' ' -f 1 ) fi if [ ! -e "$latest_dir/$2/$2_latest.hash" ]; then mkdir -p $latest_dir/$2 if [ $2 = "uboot" ]; then - echo "sha256 ${_hash} fip-all-optee-$mem.bin" > $latest_dir/$2/$2_latest.hash + echo "sha256 ${_hash} fip-all-optee-4GB.bin" > $latest_dir/$2/$2_latest.hash else echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash fi @@ -40,7 +30,7 @@ if [ "${_hash}" = "${_known}" ]; then else mkdir -p $latest_dir/$2 if [ $2 = "uboot" ]; then - echo "sha256 ${_hash} fip-all-optee-$mem.bin" > $latest_dir/$2/$2_latest.hash + echo "sha256 ${_hash} fip-all-optee-4GB.bin" > $latest_dir/$2/$2_latest.hash else echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash fi diff --git a/package/phytium-ota/src/get_phytium_ota b/package/phytium-ota/src/get_phytium_ota new file mode 100755 index 00000000..42d14bf0 --- /dev/null +++ b/package/phytium-ota/src/get_phytium_ota @@ -0,0 +1,138 @@ +#!/bin/bash + +# Get remote update files. +# +# Copyright (c) 2024-2025 Phytium Technology Co., Ltd. +# +# # This file is licensed under the terms of the GNU General Public +# License version 2. +# +# For the specific function 'detect_and_set_network', the following copyright applies: +# Copyright (c) Authors: https://www.armbian.com/authors +# +# get_phytium_ota - To get remote update files through the network. +# + +download_dir="/usr/local/phytium-libs" +download_site="https://gitee.com/phytium_embedded/phytium-rogue-umlibs.git" +dest_dir="/usr/local/phytium-ota" + +usage() { + echo "Usage: sudo $0 {all|rootfs|fitImage|uboot}" + echo " Example 1: sudo $0 uboot + --update uboot to the latest version" + echo " Example 2: sudo $0 fitImage + --update fitImage to the latest version" + echo " Example 3: sudo $0 rootfs + --update rootfs to the latest version" + echo " Example 4: sudo $0 all + --update uboot,fitImage and rootfs to the latest version" +} + +# check if parameters are provided. +if [ $# -eq 0 ]; then + usage + exit 1 +fi + +check_args() +{ + if [ "$#" -ne 1 ]; then + echo -e "\033[1;31mArgs number error! usage: sudo $0 {all|fitImage|uboot} {latest|v1.x}\033[0m" + exit 1 + fi + if [[ "$1" != "all" ]] && [[ "$1" != "uboot" ]] && [[ "$1" != "fitImage" ]] && [[ "$1" != "rootfs" ]]; then + echo -e "\033[1;31mError: First argument must be 'all', 'uboot', 'fitImage', or 'rootfs'.\033[0m" + exit 1 + fi +} + +while true; do + case $1 in + "-h" | "-help") + usage + exit + ;; + *) + check_args $1 $2 + break + ;; + esac +done + +# get kernel version +kernel_version=$(uname -r) + +# unsupport rt kernel and 4.19 +if [[ $kernel_version =~ ^((5\.10\.[0-9]+))-phytium.* ]]; then + kernel_version="5.10" +elif [[ $kernel_version =~ ^((6\.6\.[0-9]+))-phytium.* ]]; then + kernel_version="6.6" +else + echo -e "\033[31munsupport kernel version: $kernel_version\033[0m" + exit 1 +fi + +detect_and_set_network() { + # Grab this machine's public IP address + PUBLIC_IP=$(curl --max-time 5 -s https://ipinfo.io/ip) + + # Check if we have wireless adaptor + WIFI_DEVICE=$(LC_ALL=C nmcli dev status | grep " wifi " 2> /dev/null) + + if [ -z "$PUBLIC_IP" ]; then + # ask for connecting to wireless if wifi device is found + if [[ -n "$WIFI_DEVICE" ]]; then + echo -e "Internet connection was \x1B[91mnot detected\x1B[0m." + echo "" + unset response + while [[ ! "${response}" =~ ^(Y|y|N|n)$ ]]; do + if [ -z $PRESET_CONNECT_WIRELESS ];then + read -r -p "Connect via wireless? [Y/n] " response + response=${response:-Y} + else + response=n + fi + echo "$response" + done + if [[ "${response}" =~ ^(Y|y)$ ]]; then + nmtui-connect + fi + echo "" + fi + fi + # Grab IP once again if not found + [[ -z "$PUBLIC_IP" && -n "$WIFI_DEVICE" ]] && PUBLIC_IP=$(curl --max-time 5 -s https://ipinfo.io/ip) + + if [ -z "$PUBLIC_IP" ]; then + echo -e "Internet connection was \x1B[91mnot detected\x1B[0m." + echo "exit" + exit 1; + fi +} # detect_and_set_network + +# get remote update files from gitee. +get_update_files() { + rm -rf $download_dir + mkdir -p $download_dir + + apt install -y git + + git clone -b develop --depth 1 $download_site $download_dir + if [ "$?" != "0" ]; then + echo -e "\033[1;31mget remote update files failed\033[0m" + exit 1 + fi + echo -e "\033[1;32mget remote update files success\033[0m" + rm -rf $dest_dir + cp -rf $download_dir/phytium-ota /usr/local +} # get_update_files + +main() { + detect_and_set_network + get_update_files + $dest_dir/scripts/run_phytium_ota $1 +} + +main $@ + diff --git a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash deleted file mode 100644 index 4c7c7f03..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/fitImage.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 26a9c047d93bc7b30582bca8a226c3cc41c864b2d5a21d07064b4634b654e9cf fitImage diff --git a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash deleted file mode 100644 index 16668804..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-headers-5.10.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 a7bd6c50d40e4c827654033496757200c5f3dbfda630c5ae7c0ac43e15e64f9f linux-headers-5.10.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash b/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash deleted file mode 100644 index 4a640f56..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/fitImage/latest/5.10/linux-image-5.10.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 ab0b82ebf36925a7bb389d1f26db2c04f675ddcf9e4276850dde51e05c5e5fd3 linux-image-5.10.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash deleted file mode 100644 index 72630ae8..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/lscpu.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 12775525aa3723f5ac1ae045ebecfda74c1b17579293100f5b4ad0599706e18d lscpu diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash deleted file mode 100644 index 22c62e74..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-desktop-tools.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 20ce018fcf8ccd9bfaa086784ccda952ad4692bf892f9b49751f77cecb323f1e phytium-desktop-tools.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash deleted file mode 100644 index b60b6edf..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-firstlogin.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 9a832a7b7a88beac69d6bf4e06f55f006343aba66760b3ac799c0930c923775d phytium-firstlogin.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash deleted file mode 100644 index dc6d3f41..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-tools.deb.hash +++ /dev/null @@ -1,2 +0,0 @@ -sha256 51365d89cde46b7e9397675c9d90540a90ff38d4ba9b78e2d035a2b7c0113de3 phytium-tools.deb - diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash deleted file mode 100644 index d1652f02..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-vpu.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 604180b8e915a8fde270511ef51936b67ca01ac766e1da0ced0f06a33c555eff phytium-vpu.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash deleted file mode 100644 index 449b22b5..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/phytium-zram.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 018619e90dd03f06fd7558f5640df9d2e10451bfc3d912178005a4dfc81b279a phytium-zram.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash b/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash deleted file mode 100644 index acd79f64..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/rootfs/latest/rootfs-chown.deb.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 52a42810d478918d0e2b2c1a552f4ecb6088437ddd20eea513c965d06ee35ac2 rootfs-chown.deb diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash deleted file mode 100644 index 824c2b11..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/5g/fip-all-5g-4GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 1ebc3dc344886ffb2029a33fd3fa4a9f22ff981255cb69835e84f247cfe60f11 fip-all-5g-4GB.bin diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash deleted file mode 100644 index 8702bafc..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-2GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 5ea39ddf7bcfd8ff1b3448fa0c71847a9c1e653f2cdd2cfc2451f813d8c946e4 fip-all-optee-2GB.bin diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash deleted file mode 100644 index d2e913ab..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/latest/fip-all-optee-4GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 7cc1bed898467814362553ace772ece3031819d1f62616ea6a66981014e72567 fip-all-optee-4GB.bin diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash deleted file mode 100644 index e5519f6a..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/msata/fip-all-msata-4GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 991d1cacff5a732a153eafb28c8c35d58e4455a82512c70c92e94a489bf02ac8 fip-all-msata-4GB.bin diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash deleted file mode 100644 index 8702bafc..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-2GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 5ea39ddf7bcfd8ff1b3448fa0c71847a9c1e653f2cdd2cfc2451f813d8c946e4 fip-all-optee-2GB.bin diff --git a/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash b/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash deleted file mode 100644 index e105bdb3..00000000 --- a/package/phytium-ota/src/phytium-ota-hash/uboot/v1.5/fip-all-optee-4GB.bin.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 7cc1bed898467814362553ace772ece3031819d1f62616ea6a66981014e72567 fip-all-optee-4GB.bin diff --git a/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash index db4f0b1e..4e235929 100644 --- a/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash +++ b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash @@ -1 +1 @@ -sha256 f4cf68c7804912a56c81e4c02ef7b78d50a64ce9bb0984d278b45c3cc6404f5c rootfs.tar +sha256 9b01d2a93885a3f523dce6c83b8783ffb1494702e506f637f5ebb648c8173b63 rootfs.tar diff --git a/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash index 80d83247..1b47edc4 100644 --- a/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash +++ b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash @@ -1,2 +1,2 @@ -sha256 7cc1bed898467814362553ace772ece3031819d1f62616ea6a66981014e72567 fip-all-optee-4GB.bin +sha256 07e42417ca8ab699223f321a9dd24ff5b3dbcf5bba8a344ef63bbb2ff0d59e93 fip-all-optee-4GB.bin diff --git a/package/phytium-ota/src/phytium_ota b/package/phytium-ota/src/phytium_ota deleted file mode 100755 index 9e3f815a..00000000 --- a/package/phytium-ota/src/phytium_ota +++ /dev/null @@ -1,254 +0,0 @@ -#!/bin/bash - -# Phytium phytiumpi ota script -# -# Copyright (c) 2024 Phytium Technology Co., Ltd. -# -# phytium_ota.sh - To replace fip-all.bin and fitImage through the -# network on the phytiumpi development board. -# - -download_dir="/usr/local/phytium-libs" -download_site="https://gitee.com/phytium_embedded/phytium-rogue-umlibs.git" -dest_dir="/usr/local/phytium-ota" -hash_dir="/usr/lib/phytium/phytium-ota-hash" - -usage() { - echo "Usage: sudo $0 {all|fitImage|uboot} {version}" - echo -e " for \033[32muboot\033[0m, {version} can be v1.x or latest, etc - for \033[32mfitImage\033[0m and \033[32mall\033[0m, {version} only be latest" - echo " Example 1: sudo $0 uboot v1.x - --update uboot to version v1.x - Example 2: sudo $0 fitImage latest - --update fitImage to the latest - Example 3: sudo $0 all latest - --update uboot,fitImage and rootfs to the latest" -} - -while true; do - case $1 in - "-h" | "-help") - usage - exit - ;; - *) - break - ;; - esac -done - -check_args() -{ - if [ "$#" -ne 2 ]; then - echo -e "\033[1;31mUsage: sudo $0 {all|fitImage|uboot} {latest|v1.x}\033[0m" - exit 1 - fi - if [ "$1" != "all" ] && [ "$1" != "fitImage" ] && [ "$1" != "uboot" ]; then - echo -e "\033[1;31mError: First argument must be 'all', 'fitImage', or 'uboot'.\033[0m" - exit 1 - fi - - if [[ "$2" != "latest" && "$2" != "msata" && "$2" != "5g" && ! "$2" =~ ^v1\.[0-9]+$ ]]; then - echo -e "\033[1;31mError: Second argument must be 'latest', "msata", "5g" or 'v1.x'.\033[0m" - exit 1 - fi -} - -mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem") -mem_info=$(echo $mem_info | awk '{print $2}') -memory_total=$(( mem_info * 1024 )) -# compare to 3GB -if [ $memory_total -ge 3221225472 ]; then - mem=4GB -else - mem=2GB -fi - -# uboot -uboot_type=optee -if [ "$2" == "msata" ]; then - uboot_type=msata -elif [ "$2" == "5g" ]; then - uboot_type=5g -fi -uboot_bin="fip-all-$uboot_type-$mem.bin" - -uboot_hash="$uboot_bin.hash" - -# get kernel version -kernel_version=$(uname -r) - -# unsupport rt kernel and 4.19 -if [[ $kernel_version =~ ^((5\.10\.[0-9]+))-phytium.* ]]; then - kernel_version="5.10" -elif [[ $kernel_version =~ ^((6\.6\.[0-9]+))-phytium.* ]]; then - kernel_version="6.6" -else - echo -e "\033[31munsupport kernel version: $kernel_version\033[0m" - exit 1 -fi - -detect_and_set_network() { - # Grab this machine's public IP address - PUBLIC_IP=$(curl --max-time 5 -s https://ipinfo.io/ip) - - # Check if we have wireless adaptor - WIFI_DEVICE=$(LC_ALL=C nmcli dev status | grep " wifi " 2> /dev/null) - - if [ -z "$PUBLIC_IP" ]; then - - # ask for connecting to wireless if wifi device is found - if [[ -n "$WIFI_DEVICE" ]]; then - echo -e "Internet connection was \x1B[91mnot detected\x1B[0m." - echo "" - unset response - while [[ ! "${response}" =~ ^(Y|y|N|n)$ ]]; do - if [ -z $PRESET_CONNECT_WIRELESS ];then - read -r -p "Connect via wireless? [Y/n] " response - response=${response:-Y} - else - response=n - fi - echo "$response" - done - if [[ "${response}" =~ ^(Y|y)$ ]]; then - nmtui-connect - fi - echo "" - fi - fi - # Grab IP once again if not found - [[ -z "$PUBLIC_IP" && -n "$WIFI_DEVICE" ]] && PUBLIC_IP=$(curl --max-time 5 -s https://ipinfo.io/ip) - - if [ -z "$PUBLIC_IP" ]; then - echo -e "Internet connection was \x1B[91mnot detected\x1B[0m." - echo "exit" - exit 1; - fi -} # detect_and_set_network - -# get fip-all.bin and fitImage from gitee. -get_uboot_and_fitImage() { - - rm -rf $download_dir - mkdir -p $download_dir - - apt install -y git - - git clone -b develop --depth 1 $download_site $download_dir - if [ "$?" != "0" ]; then - echo -e "\033[1;31mget uboot and fitImage failed\033[0m" - exit 1 - fi - echo -e "\033[1;32mget uboot and fitImage success\033[0m" - rm -rf $dest_dir - cp -rf $download_dir/phytium-ota /usr/local - -} # get_uboot_and_fitImage - -# replace_uboot_and_fitImage -# $1: can be all\uboot\fitImage -# $2: can be latest\v1.5\msata, etc -replace_uboot_and_fitImage() { - - echo -e "\033[1;32minstalling phytium-ota...\033[0m" - dpkg -i $dest_dir/rootfs/$2/phytium-ota.deb - - if [ "$1" == "all" ]; then - uboot_latest=$(check-latest $dest_dir uboot) - if [ "${uboot_latest}" = "latest" ]; then - echo -e "\033[1;32muboot is already latest, nothing to do...\033[0m" - else - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin - echo -e "\033[1;32mupdate uboot...\033[0m" - # to preserve the partition table. - dd if=/dev/mmcblk0 of=start.img bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 - dd if=$dest_dir/uboot/$2/$uboot_bin of=/dev/mmcblk0 bs=1M count=4 >> $dest_dir/uboot/$2/replace.log 2>&1 - dd if=start.img of=/dev/mmcblk0 bs=512 count=1 >> $dest_dir/uboot/$2/replace.log 2>&1 - rm -f start.img - fi - fitImage_latest=$(check-latest $dest_dir fitImage) - if [ "${fitImage_latest}" = "latest" ]; then - echo -e "\033[1;32mkernel is already latest, nothing to do...\033[0m" - else - tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb - echo -e "\033[1;32mupdate fitImage...\033[0m" - dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb - fi - rootfs_latest=$(check-latest $dest_dir rootfs) - if [ "${rootfs_latest}" = "latest" ]; then - echo -e "\033[1;32mrootfs is already latest, nothing to do...\033[0m" - else - tar -xvf $dest_dir/rootfs/$2/rootfs.tar -C $dest_dir/rootfs/$2/ - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/rootfs/$2/phytium-desktop-tools.deb.hash $dest_dir/rootfs/$2/phytium-desktop-tools.deb phytium-desktop-tools.deb - check-hash $hash_dir/rootfs/$2/phytium-firstlogin.deb.hash $dest_dir/rootfs/$2/phytium-firstlogin.deb phytium-firstlogin.deb - check-hash $hash_dir/rootfs/$2/phytium-vpu.deb.hash $dest_dir/rootfs/$2/phytium-vpu.deb phytium-vpu.deb - check-hash $hash_dir/rootfs/$2/phytium-zram.deb.hash $dest_dir/rootfs/$2/phytium-zram.deb phytium-zram.deb - check-hash $hash_dir/rootfs/$2/rootfs-chown.deb.hash $dest_dir/rootfs/$2/rootfs-chown.deb rootfs-chown.deb - check-hash $hash_dir/rootfs/$2/phytium-tools.deb.hash $dest_dir/rootfs/$2/phytium-tools.deb phytium-tools.deb - check-hash $hash_dir/rootfs/$2/lscpu.hash $dest_dir/rootfs/$2/lscpu lscpu - echo -e "\033[1;32mupdate rootfs...\033[0m" - cp -f $dest_dir/rootfs/$2/lscpu /usr/bin/ - dpkg -i $dest_dir/rootfs/$2/phytium-desktop-tools.deb - dpkg -i $dest_dir/rootfs/$2/phytium-firstlogin.deb - dpkg -i $dest_dir/rootfs/$2/phytium-vpu.deb - dpkg -i $dest_dir/rootfs/$2/phytium-zram.deb - dpkg -i $dest_dir/rootfs/$2/rootfs-chown.deb - dpkg -i $dest_dir/rootfs/$2/phytium-tools.deb - rootfs_ota - fi - elif [ "$1" == "uboot" ]; then - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/uboot/$2/$uboot_hash $dest_dir/uboot/$2/$uboot_bin $uboot_bin - - echo -e "\033[1;32mupdate uboot...\033[0m" - # to preserve the partition table. - dd if=/dev/mmcblk0 of=start.img bs=512 count=1 >> $dest_dir/$1/$2/replace.log 2>&1 - dd if=$dest_dir/$1/$2/$uboot_bin of=/dev/mmcblk0 bs=1M count=4 >> $dest_dir/$1/$2/replace.log 2>&1 - dd if=start.img of=/dev/mmcblk0 bs=512 count=1 >> $dest_dir/$1/$2/replace.log 2>&1 - rm -f start.img - elif [ "$1" == "fitImage" ]; then - tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ - fitImage_latest=$(check-latest $dest_dir fitImage) - if [ "${fitImage_latest}" = "latest" ]; then - echo -e "\033[1;32mkernel is already latest, nothing to do...\033[0m" - else - tar -xvf $dest_dir/fitImage/$2/$kernel_version/fitImage.tar -C $dest_dir/fitImage/$2/$kernel_version/ - echo -e "\033[1;32mcheck hash...\033[0m" - check-hash $hash_dir/fitImage/$2/$kernel_version/fitImage.hash $dest_dir/fitImage/$2/$kernel_version/fitImage fitImage - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb linux-headers-$kernel_version.deb - check-hash $hash_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb.hash $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb linux-image-$kernel_version.deb - echo -e "\033[1;32mupdate fitImage...\033[0m" - dd if=$dest_dir/fitImage/$2/$kernel_version/fitImage of=/dev/mmcblk0 bs=1M seek=4 count=60 >> $dest_dir/fitImage/$2/$kernel_version/replace.log 2>&1 - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-headers-$kernel_version.deb - dpkg -i $dest_dir/fitImage/$2/$kernel_version/linux-image-$kernel_version.deb - fi - else - echo -e "\033[1;31margs error, exit\033[0m" - fi - - if [ "$?" != "0" ]; then - echo -e "\033[1;31mreplace_uboot_and_fitImage failed\033[0m" - exit 1 - fi - - echo -e "\033[1;32mupdate success, please reboot now\033[0m" -} # replace_uboot_and_fitImage - - -main() { - check_args $1 $2 - detect_and_set_network - get_uboot_and_fitImage $1 $2 - replace_uboot_and_fitImage $1 $2 -} - -main $@ diff --git a/package/phytium-ota/src/rootfs_ota b/package/phytium-ota/src/rootfs_ota deleted file mode 100755 index 86f234ca..00000000 --- a/package/phytium-ota/src/rootfs_ota +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -# Phytium phytiumpi rootfs_ota script -# -# Copyright (c) 2024 Phytium Technology Co., Ltd. -# -# rootfs_ota - To update rootfs to the latest for phytiumpi development board. -# - - -install_and_remove_packages() { - apt install -y locales audacity jq network-manager - apt remove -y dhcpcd5 -} # install_and_remove_package - -rootfs_configure() { - # rootfs-chown - systemctl enable systemd-rootfs-chown.service - # phytium-zram - systemctl enable phytium-zram-config.service - # phytium-vpu - systemctl enable phytium-vpu.service - - # disable default sink - sed -i 's/^default-sink = alsa_output.platform-sound.stereo-fallback/#&/' "/etc/pulse/client.conf" - # set kernel loglevel - sed -i 's/#kernel.printk = 3 4 1 3/kernel.printk = 4 4 1 7/' "/etc/sysctl.d/99-sysctl.conf" - # set the name of the sound output devices - sed -i 's/^update-sink-proplist 1 device.description=Headphone/#&/' "/etc/pulse/default.pa" - sed -i 's/^set-default-sink 1/#&/' "/etc/pulse/default.pa" - if ! grep -q '^update-sink-proplist 0 device.description=HDMI' "/etc/pulse/default.pa"; then - echo 'update-sink-proplist 0 device.description=HDMI' >> "/etc/pulse/default.pa" - fi - if ! grep -q '^load-module module-switch-on-connect' "/etc/pulse/default.pa"; then - echo 'load-module module-switch-on-connect' >> "/etc/pulse/default.pa" - fi - # enable ping for user - if [ ! -e "/etc/sysctl.d/10-custom-ping-group.conf" ]; then - echo 'net.ipv4.ping_group_range=1000 1000' >> "/etc/sysctl.d/10-custom-ping-group.conf" - fi - # set release message - echo DISTRIB_ID=Phytium > /etc/lsb-release - echo DISTRIB_RELEASE=1.0 >> /etc/lsb-release - echo DISTRIB_CODENAME=1.0 >> /etc/lsb-release - echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V1.6"' >> /etc/lsb-release - sed -i 's/ID=Phytium/ID=debian/' "/usr/lib/os-release" - echo '#!/bin/sh' > /etc/update-motd.d/10-help-text - echo 'printf "\n"' >> /etc/update-motd.d/10-help-text - echo 'printf " * Support: https://gitee.com/phytium_embedded/phytium-pi-os\n"' >> /etc/update-motd.d/10-help-text - chmod +x /etc/update-motd.d/00-header - chmod +x /etc/update-motd.d/10-help-text - chmod -x /etc/update-motd.d/10-uname - echo -n > $RFSDIR/etc/motd - # cups disable TLSv1.0 and TLSv1.1 - if [ -f /etc/cups/cupsd.conf ]; then - if ! grep -q '^SSLOptions MinTLS1.2' "/etc/cups/cupsd.conf"; then - echo "SSLOptions MinTLS1.2" >> "/etc/cups/cupsd.conf" - fi - 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 - if ! grep -q '^MACs hmac-sha2-256,hmac-sha2-512' "/etc/ssh/sshd_config"; then - echo "MACs hmac-sha2-256,hmac-sha2-512" >> "/etc/ssh/sshd_config" - fi - fi - # rm display-manager for phytium-firstlogin - rm -f /etc/systemd/system/display-manager.service - # touch .desktop_firstrun for phytium-firstlogin - if [ ! -e "/root/.desktop_firstlogin" ]; then - touch /root/.desktop_firstlogin - fi - # touch for phytium-firstlogin - if [ ! -e "/root/.not_logged_in_yet" ]; then - touch /root/.not_logged_in_yet - fi -} # rootfs_configure - -install_and_remove_packages -rootfs_configure -- Gitee From 407c835a315c63167e1bebc27d60acd8c48d336f Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 5 Mar 2025 17:30:17 +0800 Subject: [PATCH 08/32] README: update phytium-ota, phytium-firstlogin and ft-config Signed-off-by: lindongping --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6df92a71..11675730 100644 --- a/README.md +++ b/README.md @@ -150,18 +150,24 @@ LINUX_OVERRIDE_SRCDIR指定了一个本地的内核源码目录,这样就不 如果编译的是phytiumpi_desktop_defconfig,使用第一条命令; 如果编译的是phytiumpi_defconfig,使用第二条命令。 (2)SD卡接到开发板,启动开发板电源,启动文件系统 - (3)开发板第一次启动时,系统首先运行phytium-firstlogin程序。该程序的主要功能包括设置root用户密码、创建普通用户、连接网络、设置区域和设置语言环境等。详细见[phytium-firstlogin介绍与使用 -](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium-firstlogin%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) + (3)开发板第一次启动时,系统首先运行phytium-firstlogin程序。该程序的主要功能包括设置root用户密码、创建普通用户、连接网络、设置区域和设置语言环境、配置固件等。详细见[phytium-firstlogin介绍与使用](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium-firstlogin%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) (4)开发板运行时,如果需要更换uboot、Image和dtb,可以在飞腾派上执行对应脚本,用法如下: `$ sudo runtime_replace_bootloader.sh all` `$ sudo runtime_replace_bootloader.sh uboot` `$ sudo runtime_replace_bootloader.sh fitImage` 以上三条命令分别实现了更换uboot+Image+dtb、更换uboot和更换Image+dtb的功能,要求当前目录下有fip-all.bin和fitImage文件。 -(5)开发板运行时,如果需要远程升级uboot、Image和dtb,可以在飞腾派上执行对应脚本,用法如下: -`$ sudo phytium_ota all latest` -`$ sudo phytium_ota uboot latest` -`$ sudo phytium_ota fitImage latest` -以上三条命令通过远程分别将整个系统、uboot和Image+dtb升级到最新版本。关于phytium_ota更多信息,可以参考[phytium_ota介绍与使用](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) +(5)开发板运行时,如果需要远程升级uboot、Image和dtb、rootfs,可以在飞腾派上执行对应脚本,用法如下: +`$ sudo get_phytium_ota all` +`$ sudo get_phytium_ota uboot` +`$ sudo get_phytium_ota fitImage` +`$ sudo get_phytium_ota rootfs` +以上四条命令通过远程分别将整个系统、uboot、Image+dtb和根文件系统升级到最新版本。关于phytium_ota更多信息,可以参考[phytium_ota介绍与使用](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) +(6)由于不同的开发板的硬件配置有所不同,对应的固件也有变化。开发板运行时,如果需要更新固件uboot的配置,可以在飞腾派上执行ft-config脚本,用法和示例如下: +`$ sudo ft-config {hw|mem|pcie} {type}` +`$ sudo ft-config hw v3` +`$ sudo ft-config mem 8g` +`$ sudo ft-config pcie usb3` +上面三个例子,分别是配置固件支持硬件v3版本、设置内存为8g和设置pcie为usb3。关于ft-config更多信息,可以参考[飞腾派固件配置工具ft-config的介绍与使用](https://gitee.com/phytium_embedded/phytium-pi-os/wikis/%E9%A3%9E%E8%85%BE%E6%B4%BE%E5%9B%BA%E4%BB%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7ft-config%E7%9A%84%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8) # 编译内核模块 关于如何编译内核外部模块,可参考https://www.kernel.org/doc/html/latest/kbuild/modules.html -- Gitee From f58da68384cbd92e246b84bf8d08cc6ac6a667b2 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 5 Mar 2025 17:31:05 +0800 Subject: [PATCH 09/32] update phyuboot version and phytium-firstlogin Signed-off-by: lindongping --- package/phytium-firstlogin/src/phytium-firstlogin | 2 +- package/phyuboot/phyuboot.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/phytium-firstlogin/src/phytium-firstlogin b/package/phytium-firstlogin/src/phytium-firstlogin index 982d9383..3a3b43c8 100755 --- a/package/phytium-firstlogin/src/phytium-firstlogin +++ b/package/phytium-firstlogin/src/phytium-firstlogin @@ -523,7 +523,7 @@ firmware_configure(){ printf "\x11" | dd of=/dev/mmcblk0 bs=1 count=1 conv=notrunc seek=1004390 && sync flag=1 fi - if [[ flag == 1 ]]; then + if [[ "$flag" == 1 ]]; then echo "the firmware has change, please power reset after desktop started." fi echo "" diff --git a/package/phyuboot/phyuboot.mk b/package/phyuboot/phyuboot.mk index e38219c6..7da8ef37 100644 --- a/package/phyuboot/phyuboot.mk +++ b/package/phyuboot/phyuboot.mk @@ -4,7 +4,7 @@ # ################################################################################ -PHYUBOOT_VERSION = 450cf1800670422e9a39b1589f2d1257ccb6ad24 +PHYUBOOT_VERSION = 1393e14413f2e3f65597dcd2eb19e307f5636f74 PHYUBOOT_SITE = https://gitee.com/phytium_embedded/phytium-rogue-umlibs.git PHYUBOOT_SITE_METHOD = git -- Gitee From f064a8f49d28e5fb83876a991fe70273f6287ddc Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 19 Mar 2025 09:56:11 +0800 Subject: [PATCH 10/32] update phytium-firstlogin and ft-config Signed-off-by: lindongping --- package/phytium-firstlogin/src/phytium-firstlogin | 2 +- package/phytium-tools/src/ft-config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/phytium-firstlogin/src/phytium-firstlogin b/package/phytium-firstlogin/src/phytium-firstlogin index 3a3b43c8..a78ad79c 100755 --- a/package/phytium-firstlogin/src/phytium-firstlogin +++ b/package/phytium-firstlogin/src/phytium-firstlogin @@ -493,7 +493,7 @@ check-if-dd-success() { if [ "${_hash}" = "${_known}" ]; then echo -e "\033[1;32mHash verification succeeded, configuration has been updated.\033[0m" else - echo -e "\033[1;31mHash verification failed, configuration update encountered an error. You may need to manually update the firmware. See https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8的启动异常补救措施小节\033[0m" + echo -e "\033[1;31mHash verification failed, configuration update encountered an error. You may need to manually update the firmware. See https://gitee.com/phytium_embedded/phytium-pi-os/wikis/%E9%A3%9E%E8%85%BE%E6%B4%BE%E5%9B%BA%E4%BB%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7ft-config%E7%9A%84%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8的启动异常补救措施小节\033[0m" exit 1 fi } diff --git a/package/phytium-tools/src/ft-config b/package/phytium-tools/src/ft-config index 76d49d82..e967d431 100755 --- a/package/phytium-tools/src/ft-config +++ b/package/phytium-tools/src/ft-config @@ -94,7 +94,7 @@ check-if-dd-success() { if [ "${_hash}" = "${_known}" ]; then echo -e "\033[1;32mHash verification succeeded, configuration has been updated.\033[0m" else - echo -e "\033[1;31mHash verification failed, configuration update encountered an error. You may need to manually update the firmware. See https://gitee.com/phytium_embedded/phytium-pi-os/wikis/phytium_ota%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8的启动异常补救措施小节\033[0m" + echo -e "\033[1;31mHash verification failed, configuration update encountered an error. You may need to manually update the firmware. See https://gitee.com/phytium_embedded/phytium-pi-os/wikis/%E9%A3%9E%E8%85%BE%E6%B4%BE%E5%9B%BA%E4%BB%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7ft-config%E7%9A%84%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8的启动异常补救措施小节\033[0m" exit 1 fi } -- Gitee From fb6becced7a581674cbe9049f2c608d4ddce7eb4 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 19 Mar 2025 09:57:22 +0800 Subject: [PATCH 11/32] delete check-latest Signed-off-by: lindongping --- package/phytium-ota/phytium-ota.mk | 1 - package/phytium-ota/src/check-latest | 38 ---------------------------- 2 files changed, 39 deletions(-) delete mode 100755 package/phytium-ota/src/check-latest diff --git a/package/phytium-ota/phytium-ota.mk b/package/phytium-ota/phytium-ota.mk index 26a6eb7f..30ecb39e 100644 --- a/package/phytium-ota/phytium-ota.mk +++ b/package/phytium-ota/phytium-ota.mk @@ -13,7 +13,6 @@ define PHYTIUM_OTA_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/bin mkdir -p $(TARGET_DIR)/usr/lib/phytium/ $(INSTALL) -m 755 -D $(@D)/check-hash $(TARGET_DIR)/usr/bin/ - $(INSTALL) -m 755 -D $(@D)/check-latest $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 755 -D $(@D)/get_phytium_ota $(TARGET_DIR)/usr/bin/ cp -rf $(@D)/phytium-ota-latest/ $(TARGET_DIR)/usr/lib/phytium/ endef diff --git a/package/phytium-ota/src/check-latest b/package/phytium-ota/src/check-latest deleted file mode 100755 index 9709bab7..00000000 --- a/package/phytium-ota/src/check-latest +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -set -e - -latest_dir="/usr/lib/phytium/phytium-ota-latest" - -if [ $2 = "uboot" ]; then - _hash=$( sha256sum "$1/$2/fip-all-optee-4GB.bin" |cut -d ' ' -f 1 ) -elif [ $2 = "fitImage" ]; then - _hash=$( sha256sum "$1/$2/5.10/$2.tar" |cut -d ' ' -f 1 ) -elif [ $2 = "rootfs" ]; then - _hash=$( sha256sum "$1/$2/$2.tar" |cut -d ' ' -f 1 ) -fi - -if [ ! -e "$latest_dir/$2/$2_latest.hash" ]; then - mkdir -p $latest_dir/$2 - if [ $2 = "uboot" ]; then - echo "sha256 ${_hash} fip-all-optee-4GB.bin" > $latest_dir/$2/$2_latest.hash - else - echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash - fi - echo "no_latest" - exit -else - _known=$(cat $latest_dir/$2/$2_latest.hash | cut -d ' ' -f 3) -fi - -# Do the hashes match? -if [ "${_hash}" = "${_known}" ]; then - echo "latest" -else - mkdir -p $latest_dir/$2 - if [ $2 = "uboot" ]; then - echo "sha256 ${_hash} fip-all-optee-4GB.bin" > $latest_dir/$2/$2_latest.hash - else - echo "sha256 ${_hash} $2.tar" > $latest_dir/$2/$2_latest.hash - fi - echo "no_latest" -fi -- Gitee From 8b68e70334f4bf000715ec9ede43ac45db617c90 Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 15:15:51 +0800 Subject: [PATCH 12/32] support xenomai Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- configs/phytiumpi_xenomai_cobalt_6.6.config | 14 +++++++ configs/phytiumpi_xenomai_mercury_6.6.config | 12 ++++++ package/xenomai/Config.in | 1 + package/xenomai/xenomai.mk | 40 +++++++++++++------- 4 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 configs/phytiumpi_xenomai_cobalt_6.6.config create mode 100644 configs/phytiumpi_xenomai_mercury_6.6.config diff --git a/configs/phytiumpi_xenomai_cobalt_6.6.config b/configs/phytiumpi_xenomai_cobalt_6.6.config new file mode 100644 index 00000000..d070ac09 --- /dev/null +++ b/configs/phytiumpi_xenomai_cobalt_6.6.config @@ -0,0 +1,14 @@ +# 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="c096fe6eee82d7c2035b8ae03567eead94f63149" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/cobalt.config" +# xenomai libraries and tools +BR2_PACKAGE_XENOMAI=y +BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL=y +BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL="https://source.denx.de/Xenomai/xenomai/-/archive/v3.3/xenomai-v3.3.tar.gz" +BR2_PACKAGE_XENOMAI_COBALT=y +BR2_PACKAGE_XENOMAI_ENABLE_SMP=y +BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS="--enable-pshared --enable-dlopen-libs" +BR2_PACKAGE_XENOMAI_TESTSUITE=y +BR2_PACKAGE_XENOMAI_RTCAN=y +BR2_PACKAGE_XENOMAI_ANALOGY=y diff --git a/configs/phytiumpi_xenomai_mercury_6.6.config b/configs/phytiumpi_xenomai_mercury_6.6.config new file mode 100644 index 00000000..7458595d --- /dev/null +++ b/configs/phytiumpi_xenomai_mercury_6.6.config @@ -0,0 +1,12 @@ +# kernel 6.6-rt +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="20635251686c50c94eeea2e8a71a99fb59ee80df" +# xenomai libraries and tools +BR2_PACKAGE_XENOMAI=y +BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL=y +BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL="https://source.denx.de/Xenomai/xenomai/-/archive/v3.3/xenomai-v3.3.tar.gz" +BR2_PACKAGE_XENOMAI_MERCURY=y +BR2_PACKAGE_XENOMAI_ENABLE_SMP=y +BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS="--enable-pshared --enable-dlopen-libs" +BR2_PACKAGE_XENOMAI_TESTSUITE=y +BR2_PACKAGE_XENOMAI_RTCAN=y +BR2_PACKAGE_XENOMAI_ANALOGY=y diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in index d4983b08..ae476e33 100644 --- a/package/xenomai/Config.in +++ b/package/xenomai/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS default y if BR2_x86_64 default y if BR2_powerpc default y if BR2_arm && !BR2_ARM_CPU_ARMV7M && !BR2_ARM_CPU_ARMV8A + default y if BR2_aarch64 comment "xenomai needs a glibc or uClibc toolchain w/ threads" depends on BR2_USE_MMU diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk index 93569192..f0ac235a 100644 --- a/package/xenomai/xenomai.mk +++ b/package/xenomai/xenomai.mk @@ -39,10 +39,6 @@ XENOMAI_INSTALL_STAGING = YES XENOMAI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-user XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user -XENOMAI_CONF_OPTS += \ - --disable-demo \ - --includedir=/usr/include/xenomai/ - ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y) XENOMAI_CONF_OPTS += --with-core=mercury else @@ -69,22 +65,38 @@ endif XENOMAI_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS)) +XENOMAI_PREFIX = /usr/xenomai +define XENOMAI_CONFIGURE_CMDS + (cd $(@D) && rm -rf config.cache && \ + $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_ARGS) \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=$(XENOMAI_PREFIX) \ + --exec-prefix=$(XENOMAI_PREFIX) \ + --program-prefix="" \ + $(XENOMAI_CONF_OPTS) \ + ) +endef + # Some of these files may be desired by some users -- at that point specific # config options need to be added to keep a particular set. define XENOMAI_REMOVE_UNNEEDED_FILES for i in xeno xeno-config xeno-info wrap-link.sh ; do \ - rm -f $(TARGET_DIR)/usr/bin/$$i ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/bin/$$i ; \ done for i in cobalt modechk ; do \ - rm -f $(TARGET_DIR)/usr/lib/$$i.wrappers ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/lib/$$i.wrappers ; \ done for i in autotune corectl hdb rtnet nomaccfg rtcfg rtifconfig \ rtiwconfig rtping rtroute tdmacfg rtps slackspot version; do \ - rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/sbin/$$i ; \ done endef -XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES +# XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),y) XENOMAI_CONF_OPTS += --enable-testsuite @@ -95,9 +107,9 @@ endif ifeq ($(BR2_PACKAGE_XENOMAI_RTCAN),) define XENOMAI_REMOVE_RTCAN_PROGS for i in rtcanrecv rtcansend ; do \ - rm -f $(TARGET_DIR)/usr/bin/$$i ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/bin/$$i ; \ done - rm -f $(TARGET_DIR)/usr/sbin/rtcanconfig + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/sbin/rtcanconfig endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_RTCAN_PROGS @@ -107,12 +119,12 @@ ifeq ($(BR2_PACKAGE_XENOMAI_ANALOGY),) define XENOMAI_REMOVE_ANALOGY for i in cmd_read cmd_write cmd_bits insn_read insn_write insn_bits \ wf_generate ; do \ - rm -f $(TARGET_DIR)/usr/bin/$$i ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/bin/$$i ; \ done for i in analogy_config analogy_calibrate ; do \ - rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/sbin/$$i ; \ done - rm -f $(TARGET_DIR)/usr/lib/libanalogy.* + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/lib/libanalogy.* endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_ANALOGY @@ -129,7 +141,7 @@ XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VRTX_SKIN),,vrtx) define XENOMAI_REMOVE_LIBS for i in $(XENOMAI_REMOVE_LIBS_LIST) ; do \ - rm -f $(TARGET_DIR)/usr/lib/lib$$i.* ; \ + rm -f $(TARGET_DIR)/$(XENOMAI_PREFIX)/lib/lib$$i.* ; \ done endef -- Gitee From dcfe41634312698f169afc86d28c5b1649e3d2fa Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Fri, 14 Mar 2025 15:31:14 +0800 Subject: [PATCH 13/32] xenomai mercury: fix xenomai mercury 3.3 build failure Signed-off-by: weishanshan1084 --- package/xenomai/0001-mercury.patch | 107 +++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 package/xenomai/0001-mercury.patch diff --git a/package/xenomai/0001-mercury.patch b/package/xenomai/0001-mercury.patch new file mode 100644 index 00000000..4cb1cc94 --- /dev/null +++ b/package/xenomai/0001-mercury.patch @@ -0,0 +1,107 @@ +diff -Nur xenomai-v3.3/lib/boilerplate/setup.c xenomai-v3.3-mercury/lib/boilerplate/setup.c +--- xenomai-v3.3/lib/boilerplate/setup.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/lib/boilerplate/setup.c 2025-03-14 11:15:23.058291260 +0800 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + + struct base_setup_data __base_setup_data = { +diff -Nur xenomai-v3.3/lib/copperplate/internal.c xenomai-v3.3-mercury/lib/copperplate/internal.c +--- xenomai-v3.3/lib/copperplate/internal.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/lib/copperplate/internal.c 2025-03-14 11:16:15.375803540 +0800 +@@ -25,7 +25,7 @@ + #include + #include + #include +- ++#include + #include + #include + #include +diff -Nur xenomai-v3.3/testsuite/gpiobench/gpiobench.c xenomai-v3.3-mercury/testsuite/gpiobench/gpiobench.c +--- xenomai-v3.3/testsuite/gpiobench/gpiobench.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/testsuite/gpiobench/gpiobench.c 2025-03-14 11:10:41.586603280 +0800 +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + + #define NS_PER_MS (1000000) +diff -Nur xenomai-v3.3/testsuite/smokey/alchemytests/Makefile.am xenomai-v3.3-mercury/testsuite/smokey/alchemytests/Makefile.am +--- xenomai-v3.3/testsuite/smokey/alchemytests/Makefile.am 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/testsuite/smokey/alchemytests/Makefile.am 2025-03-14 11:11:16.205539420 +0800 +@@ -21,7 +21,6 @@ + alchemytests_mq3 \ + alchemytests_mutex1 \ + alchemytests_mutex2 \ +- alchemytests_pipe1 \ + alchemytests_sem1 \ + alchemytests_sem2 \ + alchemytests_task1 \ +@@ -35,6 +34,10 @@ + alchemytests_task9 \ + alchemytests_task10 \ + alchemytests_task11 ++if XENO_COBALT ++test_PROGRAMS += \ ++ alchemytests_pipe1 ++endif + + alchemycppflags = \ + $(XENO_USER_CFLAGS) \ +@@ -75,10 +78,6 @@ + alchemytests_mutex2_CPPFLAGS = $(alchemycppflags) + alchemytests_mutex2_LDADD = $(alchemyldadd) + alchemytests_mutex2_LDFLAGS = @XENO_AUTOINIT_LDFLAGS@ +-alchemytests_pipe1_SOURCES = pipe-1.c +-alchemytests_pipe1_CPPFLAGS = $(alchemycppflags) +-alchemytests_pipe1_LDADD = $(alchemyldadd) +-alchemytests_pipe1_LDFLAGS = @XENO_AUTOINIT_LDFLAGS@ + alchemytests_mq1_SOURCES = mq-1.c + alchemytests_mq1_CPPFLAGS = $(alchemycppflags) + alchemytests_mq1_LDADD = $(alchemyldadd) +@@ -143,3 +142,9 @@ + alchemytests_task11_CPPFLAGS = $(alchemycppflags) + alchemytests_task11_LDADD = $(alchemyldadd) + alchemytests_task11_LDFLAGS = @XENO_AUTOINIT_LDFLAGS@ ++if XENO_COBALT ++alchemytests_pipe1_SOURCES = pipe-1.c ++alchemytests_pipe1_CPPFLAGS = $(alchemycppflags) ++alchemytests_pipe1_LDADD = $(alchemyldadd) ++alchemytests_pipe1_LDFLAGS = @XENO_AUTOINIT_LDFLAGS@ ++endif +diff -Nur xenomai-v3.3/testsuite/smokey/alchemytests/alchemytests.c xenomai-v3.3-mercury/testsuite/smokey/alchemytests/alchemytests.c +--- xenomai-v3.3/testsuite/smokey/alchemytests/alchemytests.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/testsuite/smokey/alchemytests/alchemytests.c 2025-03-14 11:11:22.755236760 +0800 +@@ -1,4 +1,5 @@ + // SPDX-License-Identifier: GPL-2.0 ++#include + #include + #include + #include +diff -Nur xenomai-v3.3/testsuite/smokey/alchemytests/task-11.c xenomai-v3.3-mercury/testsuite/smokey/alchemytests/task-11.c +--- xenomai-v3.3/testsuite/smokey/alchemytests/task-11.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/testsuite/smokey/alchemytests/task-11.c 2025-03-14 11:11:30.892819240 +0800 +@@ -1,5 +1,6 @@ + // SPDX-License-Identifier: GPL-2.0 + #include ++#include + #include + #include + #include +diff -Nur xenomai-v3.3/testsuite/smokey/alchemytests/task-2.c xenomai-v3.3-mercury/testsuite/smokey/alchemytests/task-2.c +--- xenomai-v3.3/testsuite/smokey/alchemytests/task-2.c 2024-10-22 00:27:33.000000000 +0800 ++++ xenomai-v3.3-mercury/testsuite/smokey/alchemytests/task-2.c 2025-03-14 11:11:38.029262840 +0800 +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include + #include + -- Gitee From ea845bd56efd1c699540f8cdd704bfa53915fe3d Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 15:20:23 +0800 Subject: [PATCH 14/32] support jailhouse Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- configs/phytiumpi_jailhouse.config | 9 +++++ .../0001-disable-smmu-in-dts.patch | 34 +++++++++++++++++++ ...ytiumpi-linux-kernel-to-reserve-memo.patch | 34 +++++++++++++++++++ package/jailhouse/jailhouse.hash | 3 -- package/jailhouse/jailhouse.mk | 31 +++++++++++------ package/libffi/libffi.mk | 3 ++ package/python-mako/python-mako.mk | 4 +++ package/python3/python3.mk | 3 ++ 8 files changed, 107 insertions(+), 14 deletions(-) create mode 100644 configs/phytiumpi_jailhouse.config create mode 100644 linux/kernel-patches/0001-disable-smmu-in-dts.patch create mode 100644 linux/kernel-patches/jailhouse/0001-modify-the-dts-of-phytiumpi-linux-kernel-to-reserve-memo.patch delete mode 100644 package/jailhouse/jailhouse.hash diff --git a/configs/phytiumpi_jailhouse.config b/configs/phytiumpi_jailhouse.config new file mode 100644 index 00000000..cf20b312 --- /dev/null +++ b/configs/phytiumpi_jailhouse.config @@ -0,0 +1,9 @@ +# jailhouse +BR2_PACKAGE_JAILHOUSE=y + +# jailhouse helper scripts +BR2_PACKAGE_PYTHON3=y +BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS=y + +# kernel patch for phytiumpi,kernel version of 6.6 +BR2_LINUX_KERNEL_PATCH="$(LINUX_PKGDIR)/kernel-patches/jailhouse/0001-modify-the-dts-of-phytiumpi-linux-kernel-to-reserve-memo.patch $(LINUX_PKGDIR)/kernel-patches/0001-disable-smmu-in-dts.patch" diff --git a/linux/kernel-patches/0001-disable-smmu-in-dts.patch b/linux/kernel-patches/0001-disable-smmu-in-dts.patch new file mode 100644 index 00000000..c84b9017 --- /dev/null +++ b/linux/kernel-patches/0001-disable-smmu-in-dts.patch @@ -0,0 +1,34 @@ +From 3e75cd0d84d86f395d945c244c43bb0d3f5e7bbd Mon Sep 17 00:00:00 2001 +From: weishanshan1084 +Date: Tue, 2 Jan 2024 10:56:39 +0800 +Subject: [PATCH] disable smmu in dts + +Signed-off-by: weishanshan1084 +--- + arch/arm64/boot/dts/phytium/pe220x.dtsi | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/phytium/pe220x.dtsi b/arch/arm64/boot/dts/phytium/pe220x.dtsi +index ef2dc3190..874b6fc8e 100644 +--- a/arch/arm64/boot/dts/phytium/pe220x.dtsi ++++ b/arch/arm64/boot/dts/phytium/pe220x.dtsi +@@ -173,6 +173,7 @@ smmu: iommu@30000000 { + interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; + dma-coherent; + #iommu-cells = <1>; ++ status = "disabled"; + }; + + soc: soc { +@@ -1001,7 +1002,7 @@ pcie: pcie@40000000 { + ranges = <0x01000000 0x00 0x00000000 0x0 0x50000000 0x0 0x00f00000>, + <0x02000000 0x00 0x58000000 0x0 0x58000000 0x0 0x28000000>, + <0x03000000 0x10 0x00000000 0x10 0x00000000 0x10 0x00000000>; +- iommu-map = <0x0 &smmu 0x0 0x10000>; ++ //iommu-map = <0x0 &smmu 0x0 0x10000>; + status = "disabled"; + }; + +-- +2.25.1 + diff --git a/linux/kernel-patches/jailhouse/0001-modify-the-dts-of-phytiumpi-linux-kernel-to-reserve-memo.patch b/linux/kernel-patches/jailhouse/0001-modify-the-dts-of-phytiumpi-linux-kernel-to-reserve-memo.patch new file mode 100644 index 00000000..5064a247 --- /dev/null +++ b/linux/kernel-patches/jailhouse/0001-modify-the-dts-of-phytiumpi-linux-kernel-to-reserve-memo.patch @@ -0,0 +1,34 @@ +From 01bcd5347ace6a71bad5e71cf8ab8d165e34eec0 Mon Sep 17 00:00:00 2001 +From: lindongping +Date: Fri, 1 Dec 2023 16:37:18 +0800 +Subject: [PATCH] modify the dts of e2000 linux kernel to reserve memory for + jailhouse. + +--- + arch/arm64/boot/dts/phytium/pe2204.dtsi | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/arch/arm64/boot/dts/phytium/pe2204.dtsi b/arch/arm64/boot/dts/phytium/pe2204.dtsi +index 201a01e75..54cd6f0a4 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204.dtsi ++++ b/arch/arm64/boot/dts/phytium/pe2204.dtsi +@@ -10,6 +10,16 @@ + / { + compatible = "phytium,pe2204"; + ++ reserved-memory { ++ #address-cells = <0x00000002>; ++ #size-cells = <0x00000002>; ++ ranges; ++ reserved@b0000000 { ++ reg = <0x00000000 0xb0000000 0x00000000 0x10000000>; ++ no-map; ++ }; ++ }; ++ + aliases { + ethernet0 = &macb0; + ethernet1 = &macb1; +-- +2.34.1 + diff --git a/package/jailhouse/jailhouse.hash b/package/jailhouse/jailhouse.hash deleted file mode 100644 index 96d58198..00000000 --- a/package/jailhouse/jailhouse.hash +++ /dev/null @@ -1,3 +0,0 @@ -# Locally computed: -sha256 38ea5d2d9672ce7f76fd0c163edaa8968711aca58f245aec3c8934f140e828b6 jailhouse-e57d1eff6d55aeed5f977fe4e2acfb6ccbdd7560.tar.gz -sha256 3aafb31a2436178323663e00511f16d58fc36ea654b1457532e79d017205efd8 COPYING diff --git a/package/jailhouse/jailhouse.mk b/package/jailhouse/jailhouse.mk index b5a8b40f..574bb090 100644 --- a/package/jailhouse/jailhouse.mk +++ b/package/jailhouse/jailhouse.mk @@ -4,8 +4,9 @@ # ################################################################################ -JAILHOUSE_VERSION = e57d1eff6d55aeed5f977fe4e2acfb6ccbdd7560 -JAILHOUSE_SITE = $(call github,siemens,jailhouse,$(JAILHOUSE_VERSION)) +JAILHOUSE_VERSION = 7c80882965c632e1123cba4fd1d13d1114f12965 +JAILHOUSE_SITE = https://gitee.com/phytium_embedded/phytium-jailhouse.git +JAILHOUSE_SITE_METHOD = git JAILHOUSE_LICENSE = GPL-2.0 JAILHOUSE_LICENSE_FILES = COPYING JAILHOUSE_DEPENDENCIES = \ @@ -16,7 +17,8 @@ JAILHOUSE_MAKE_OPTS = \ ARCH="$(KERNEL_ARCH)" \ KDIR="$(LINUX_DIR)" \ DESTDIR="$(TARGET_DIR)" \ - prefix=/usr + prefix=/usr \ + INSTALL_MOD_DIR="jailhouse" ifeq ($(BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS),y) JAILHOUSE_DEPENDENCIES += \ @@ -33,36 +35,43 @@ endif ifeq ($(BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS),y) define JAILHOUSE_BUILD_HELPER_SCRIPTS - cd $(@D) && \ + cd $(@D)/src/jailhouse && \ $(PKG_PYTHON_SETUPTOOLS_ENV) \ $(HOST_DIR)/bin/python setup.py \ build endef define JAILHOUSE_INSTALL_HELPER_SCRIPTS - cd $(@D) && \ + cd $(@D)/src/jailhouse && \ $(PKG_PYTHON_SETUPTOOLS_ENV) \ $(HOST_DIR)/bin/python setup.py \ install --no-compile \ $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \ - --root=$(TARGET_DIR)) + --root=$(TARGET_DIR) + $(if $(BR2_ROOTFS_SKELETON_DEBIAN_BOOKWORM), \ + mkdir -p $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages && \ + mv $(TARGET_DIR)/usr/lib/python3.11/site-packages/pyjailhouse $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages && \ + mv $(TARGET_DIR)/usr/lib/python3.11/site-packages/pyjailhouse-0.12-py3.11.egg-info $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages/pyjailhouse-0.12-py3.11.egg-info) endef endif define JAILHOUSE_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D) + $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D)/src/jailhouse $(JAILHOUSE_BUILD_HELPER_SCRIPTS) endef define JAILHOUSE_INSTALL_TARGET_CMDS - $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D) modules_install firmware_install tool_inmates_install - $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D)/tools src=$(@D)/tools install + $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D)/src/jailhouse modules_install firmware_install tool_inmates_install + $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D)/src/jailhouse/tools src=$(@D)/src/jailhouse/tools install $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/jailhouse - $(INSTALL) -D -m 0644 $(@D)/configs/*/*.cell $(TARGET_DIR)/etc/jailhouse + $(INSTALL) -D -m 0644 $(@D)/src/jailhouse/configs/*/*.cell $(TARGET_DIR)/etc/jailhouse $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/libexec/jailhouse/demos - $(INSTALL) -D -m 0755 $(@D)/inmates/demos/*/*.bin $(TARGET_DIR)/usr/libexec/jailhouse/demos + $(INSTALL) -D -m 0755 $(@D)/src/jailhouse/inmates/demos/*/*.bin $(TARGET_DIR)/usr/libexec/jailhouse/demos + + $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/libexec/jailhouse/dtb + $(INSTALL) -D -m 0644 $(@D)/src/jailhouse/configs/arm64/dts/*.dtb $(TARGET_DIR)/usr/libexec/jailhouse/dtb $(JAILHOUSE_INSTALL_HELPER_SCRIPTS) endef diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk index 6249023e..1f9bec27 100644 --- a/package/libffi/libffi.mk +++ b/package/libffi/libffi.mk @@ -11,6 +11,9 @@ LIBFFI_LICENSE = MIT LIBFFI_LICENSE_FILES = LICENSE LIBFFI_CPE_ID_VALID = YES LIBFFI_INSTALL_STAGING = YES +ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) +LIBFFI_INSTALL_TARGET = NO +endif # We're patching Makefile.am LIBFFI_AUTORECONF = YES diff --git a/package/python-mako/python-mako.mk b/package/python-mako/python-mako.mk index 2eba772b..ee2a692e 100644 --- a/package/python-mako/python-mako.mk +++ b/package/python-mako/python-mako.mk @@ -16,5 +16,9 @@ PYTHON_MAKO_CPE_ID_PRODUCT = mako # In host build, setup.py tries to download markupsafe if it is not installed HOST_PYTHON_MAKO_DEPENDENCIES = host-python-markupsafe +ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) +PYTHON_MAKO_INSTALL_TARGET = NO +endif + $(eval $(python-package)) $(eval $(host-python-package)) diff --git a/package/python3/python3.mk b/package/python3/python3.mk index 5d9d77af..744c77c4 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -67,6 +67,9 @@ HOST_PYTHON3_CONF_OPTS += --disable-openssl endif PYTHON3_INSTALL_STAGING = YES +ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) +PYTHON3_INSTALL_TARGET = NO +endif ifeq ($(BR2_PACKAGE_PYTHON3_2TO3),y) PYTHON3_CONF_OPTS += --enable-lib2to3 -- Gitee From b2a2b4f26f94bf27f7d6f063d4cd810f5fad594e Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Mon, 17 Mar 2025 17:41:01 +0800 Subject: [PATCH 15/32] jailhouse: use pth file to search pyjailhouse module Signed-off-by: weishanshan1084 --- package/jailhouse/jailhouse.mk | 7 +++---- package/python-mako/python-mako.mk | 4 ---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/package/jailhouse/jailhouse.mk b/package/jailhouse/jailhouse.mk index 574bb090..6e20a932 100644 --- a/package/jailhouse/jailhouse.mk +++ b/package/jailhouse/jailhouse.mk @@ -47,10 +47,9 @@ define JAILHOUSE_INSTALL_HELPER_SCRIPTS install --no-compile \ $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \ --root=$(TARGET_DIR) - $(if $(BR2_ROOTFS_SKELETON_DEBIAN_BOOKWORM), \ - mkdir -p $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages && \ - mv $(TARGET_DIR)/usr/lib/python3.11/site-packages/pyjailhouse $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages && \ - mv $(TARGET_DIR)/usr/lib/python3.11/site-packages/pyjailhouse-0.12-py3.11.egg-info $(TARGET_DIR)/usr/local/lib/python3.11/dist-packages/pyjailhouse-0.12-py3.11.egg-info) + $(if $(BR2_ROOTFS_SKELETON_CUSTOM), \ + mkdir -p $(TARGET_DIR)/usr/lib/python3/dist-packages && \ + echo "/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages" > $(TARGET_DIR)/usr/lib/python3/dist-packages/pyjailhouse.pth) endef endif diff --git a/package/python-mako/python-mako.mk b/package/python-mako/python-mako.mk index ee2a692e..2eba772b 100644 --- a/package/python-mako/python-mako.mk +++ b/package/python-mako/python-mako.mk @@ -16,9 +16,5 @@ PYTHON_MAKO_CPE_ID_PRODUCT = mako # In host build, setup.py tries to download markupsafe if it is not installed HOST_PYTHON_MAKO_DEPENDENCIES = host-python-markupsafe -ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) -PYTHON_MAKO_INSTALL_TARGET = NO -endif - $(eval $(python-package)) $(eval $(host-python-package)) -- Gitee From a5d399fa00810ce6bd648b43dc2c3724e9a80153 Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Tue, 18 Mar 2025 19:07:38 +0800 Subject: [PATCH 16/32] jailhouse: the format of python module is .py sources Signed-off-by: weishanshan1084 --- configs/phytiumpi_jailhouse.config | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/phytiumpi_jailhouse.config b/configs/phytiumpi_jailhouse.config index cf20b312..fe60ac33 100644 --- a/configs/phytiumpi_jailhouse.config +++ b/configs/phytiumpi_jailhouse.config @@ -3,6 +3,7 @@ BR2_PACKAGE_JAILHOUSE=y # jailhouse helper scripts BR2_PACKAGE_PYTHON3=y +BR2_PACKAGE_PYTHON3_PY_ONLY=y BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS=y # kernel patch for phytiumpi,kernel version of 6.6 -- Gitee From e3a946eb2d1be22f245cb16041a49a3c11125c98 Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 15:23:00 +0800 Subject: [PATCH 17/32] support ethercat Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- configs/phytiumpi_ethercat.config | 5 ++++ package/igh-ethercat/igh-ethercat.hash | 4 --- package/igh-ethercat/igh-ethercat.mk | 37 ++++++++++++++++++++++++-- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 configs/phytiumpi_ethercat.config delete mode 100644 package/igh-ethercat/igh-ethercat.hash diff --git a/configs/phytiumpi_ethercat.config b/configs/phytiumpi_ethercat.config new file mode 100644 index 00000000..4a46095a --- /dev/null +++ b/configs/phytiumpi_ethercat.config @@ -0,0 +1,5 @@ +# ethercat +BR2_PACKAGE_IGH_ETHERCAT=y + +# open62541 +BR2_PACKAGE_OPEN62541=y diff --git a/package/igh-ethercat/igh-ethercat.hash b/package/igh-ethercat/igh-ethercat.hash deleted file mode 100644 index 67a152c6..00000000 --- a/package/igh-ethercat/igh-ethercat.hash +++ /dev/null @@ -1,4 +0,0 @@ -# Locally computed -sha256 7e4d8f3497c0bc0b64a151c0d074349fe7614767563642d6fedb19567eafa1e1 igh-ethercat-f5dc109176400f540a8682a2c9ee20d411d14d61.tar.gz -sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING -sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER diff --git a/package/igh-ethercat/igh-ethercat.mk b/package/igh-ethercat/igh-ethercat.mk index 5b618ab5..07052b26 100644 --- a/package/igh-ethercat/igh-ethercat.mk +++ b/package/igh-ethercat/igh-ethercat.mk @@ -4,8 +4,9 @@ # ################################################################################ -IGH_ETHERCAT_VERSION = f5dc109176400f540a8682a2c9ee20d411d14d61 -IGH_ETHERCAT_SITE = $(call gitlab,etherlab.org,ethercat,$(IGH_ETHERCAT_VERSION)) +IGH_ETHERCAT_VERSION = dbbd80fa4bf93d2cc3a9ffc6623f678b1092a1fa +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) IGH_ETHERCAT_LICENSE_FILES = COPYING COPYING.LESSER # Fetching from Git @@ -22,5 +23,37 @@ IGH_ETHERCAT_CONF_OPTS = \ $(if $(BR2_PACKAGE_IGH_ETHERCAT_E1000E),--enable-e1000e,--disable-e1000e) \ $(if $(BR2_PACKAGE_IGH_ETHERCAT_R8169),--enable-r8169,--disable-r8169) +ifeq ($(BR2_PACKAGE_XENOMAI_COBALT),y) +IGH_ETHERCAT_DEPENDENCIES += xenomai +IGH_ETHERCAT_CONF_OPTS += \ + --enable-generic \ + --enable-cadence \ + --enable-rtdm \ + --disable-rt-syslog \ + --with-xenomai-dir=$(STAGING_DIR)/usr/xenomai +else +IGH_ETHERCAT_CONF_OPTS += \ + --enable-generic \ + --enable-cadence \ + --disable-rt-syslog +endif + +define IGH_ETHERCAT_CREATE_CHANGELOG + touch $(@D)/ChangeLog + mkdir -p $(@D)/m4 + $(if $(BR2_PACKAGE_XENOMAI_COBALT),sed -i '3 i DESTDIR=$(STAGING_DIR)' $(STAGING_DIR)/usr/xenomai/bin/xeno-config) +endef +IGH_ETHERCAT_POST_PATCH_HOOKS += IGH_ETHERCAT_CREATE_CHANGELOG + +IGH_ETHERCAT_MODULE_MAKE_OPTS = INSTALL_MOD_DIR="ethercat" + $(eval $(kernel-module)) + +define IGH_ETHERCAT_DO_NOT_LOAD_ON_BOOT + mkdir -p $(TARGET_DIR)/etc/modprobe.d + echo "# Do not load the 'ec_macb' module on boot." >> $(TARGET_DIR)/etc/modprobe.d/blacklist.conf + echo "blacklist ec_macb" >> $(TARGET_DIR)/etc/modprobe.d/blacklist.conf +endef +IGH_ETHERCAT_POST_INSTALL_TARGET_HOOKS += IGH_ETHERCAT_DO_NOT_LOAD_ON_BOOT + $(eval $(autotools-package)) -- Gitee From 576c143f66ea316dbfdc9459db4cff356dfcb7cc Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Wed, 19 Mar 2025 11:44:24 +0800 Subject: [PATCH 18/32] ethercat: fix build issue error adding symbols: DSO missing from command line Signed-off-by: weishanshan1084 --- package/Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/Makefile.in b/package/Makefile.in index 658b79ae..eea2dae1 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -149,8 +149,8 @@ endif TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) -ifeq ($(BR2_ROOTFS_SKELETON_DEBIAN),y) -TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib/aarch64-linux-gnu +ifeq ($(BR2_ROOTFS_SKELETON_UBUNTU)$(BR2_ROOTFS_SKELETON_DEBIAN),y) +TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib/aarch64-linux-gnu,--copy-dt-needed-entries endif # By design, _FORTIFY_SOURCE requires gcc optimization to be enabled. -- Gitee From d9bd0c0ea34589a20d1d3e7e0552343d022ade9a Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Fri, 14 Feb 2025 17:36:17 +0800 Subject: [PATCH 19/32] external toolchain: use arm toolchain instead of linaro toolchain Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- board/phytium/common/gcc-support-multiarch.specs | 2 ++ configs/phytiumpi_defconfig | 2 +- configs/phytiumpi_desktop_defconfig | 2 +- toolchain/toolchain-external/pkg-toolchain-external.mk | 7 +++++++ 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 board/phytium/common/gcc-support-multiarch.specs diff --git a/board/phytium/common/gcc-support-multiarch.specs b/board/phytium/common/gcc-support-multiarch.specs new file mode 100644 index 00000000..73a74b26 --- /dev/null +++ b/board/phytium/common/gcc-support-multiarch.specs @@ -0,0 +1,2 @@ +*multilib: +. !mabi=lp64;.:../lib64:aarch64-linux-gnu mabi=lp64; diff --git a/configs/phytiumpi_defconfig b/configs/phytiumpi_defconfig index 061096d3..79dfdaa1 100644 --- a/configs/phytiumpi_defconfig +++ b/configs/phytiumpi_defconfig @@ -25,7 +25,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to Phytium Pi" # toolchain BR2_TOOLCHAIN_EXTERNAL=y -BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y +BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64=y BR2_TOOLCHAIN_USES_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_GLIBC=y diff --git a/configs/phytiumpi_desktop_defconfig b/configs/phytiumpi_desktop_defconfig index 7744fae7..7731f40d 100644 --- a/configs/phytiumpi_desktop_defconfig +++ b/configs/phytiumpi_desktop_defconfig @@ -25,7 +25,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to Phytium Pi" # toolchain BR2_TOOLCHAIN_EXTERNAL=y -BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y +BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64=y BR2_TOOLCHAIN_USES_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_GLIBC=y diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk index a7ceccd6..c5ad43f0 100644 --- a/toolchain/toolchain-external/pkg-toolchain-external.mk +++ b/toolchain/toolchain-external/pkg-toolchain-external.mk @@ -354,6 +354,11 @@ define toolchain_find_libc_a $$(readlink -f $$(LANG=C $(1) -print-file-name=libc.a)) endef +# Returns the directory of the libgcc.a file +define toolchain_find_libgcc_dir +$$(dirname $$(readlink -f $$(LANG=C $(1) -print-libgcc-file-name))) +endef + # Integration of the toolchain into Buildroot: find the main sysroot # and the variant-specific sysroot, then copy the needed libraries to # the $(TARGET_DIR) and copy the whole sysroot (libraries and headers) @@ -601,6 +606,8 @@ define $(2)_CONFIGURE_CMDS $$(call check_glibc,$$$${SYSROOT_DIR}) ; \ fi $$(Q)$$(call check_toolchain_ssp,$$(TOOLCHAIN_EXTERNAL_CC),$(BR2_SSP_OPTION)) + SPECS_DIR=$$(call toolchain_find_libgcc_dir, $$(TOOLCHAIN_EXTERNAL_CC)) ; \ + cp $(TOPDIR)/board/phytium/common/gcc-support-multiarch.specs $$$${SPECS_DIR}/specs endef $(2)_TOOLCHAIN_WRAPPER_ARGS += $$(TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS) -- Gitee From 60a011077a34866c6ac3a8dab52f7e590a15b398 Mon Sep 17 00:00:00 2001 From: lindongping Date: Wed, 19 Mar 2025 16:27:01 +0800 Subject: [PATCH 20/32] toolchain-external-arm-aarch64: change versions 13.2.rel1 to 12.2.rel1 Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- .../toolchain-external-arm-aarch64/Config.in | 12 +++--------- .../toolchain-external-arm-aarch64.hash | 4 ++-- .../toolchain-external-arm-aarch64.mk | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in index 2565707d..4c7e1d76 100644 --- a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in +++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in @@ -1,19 +1,13 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64 - bool "Arm AArch64 13.2.rel1" + bool "Arm AArch64 12.2.rel1" depends on BR2_aarch64 depends on BR2_HOSTARCH = "x86_64" - depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13 select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_SSP select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 - select BR2_TOOLCHAIN_GCC_AT_LEAST_13 + select BR2_TOOLCHAIN_GCC_AT_LEAST_12 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help - Arm toolchain for the AArch64 architecture. - - This is the same toolchain that was previously distributed by - Linaro. - - https://developer.arm.com/open-source/gnu-toolchain + Official toolchain (x86 cross-compile for AArch64) from ARM web site, version 12.2.rel1. diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash b/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash index 9de90d4b..6c484783 100644 --- a/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash +++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash @@ -1,2 +1,2 @@ -# From https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz.sha256asc -sha256 12fcdf13a7430655229b20438a49e8566e26551ba08759922cdaf4695b0d4e23 arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz +# From https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz.sha256asc +sha256 6e8112dce0d4334d93bd3193815f16abe6a2dd5e7872697987a0b12308f876a4 arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk b/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk index f9adda89..9cdf5830 100644 --- a/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk +++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk @@ -4,7 +4,7 @@ # ################################################################################ -TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 13.2.rel1 +TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 12.2.rel1 TOOLCHAIN_EXTERNAL_ARM_AARCH64_SITE = https://developer.arm.com/-/media/Files/downloads/gnu/$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)/binrel TOOLCHAIN_EXTERNAL_ARM_AARCH64_SOURCE = arm-gnu-toolchain-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)-x86_64-aarch64-none-linux-gnu.tar.xz -- Gitee From 35e0f8ff0841d238603ff775e171401fa42ce3b1 Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 15:24:57 +0800 Subject: [PATCH 21/32] update optee version to v4.5.2 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 b4ec28e4..5edcfcbc 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="v3.2" +BR2_PACKAGE_PHYTIUM_OPTEE_CUSTOM_REPO_VERSION="v4.5.2" BR2_PACKAGE_PHYTIUM_OPTEE_BOARD="phytiumpi" -- Gitee From 4f53a35e90a2228d8d0b24fb72f978d0f7fb93ef Mon Sep 17 00:00:00 2001 From: lindongping Date: Thu, 20 Mar 2025 11:19:11 +0800 Subject: [PATCH 22/32] skeleton scripts: deleting skeleton-custom directory requires sudo permission Signed-off-by: weishanshan1084 --- 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 04e71caf..14e09cb0 100755 --- a/board/phytium/common/post-custom-skeleton-debian.sh +++ b/board/phytium/common/post-custom-skeleton-debian.sh @@ -202,7 +202,7 @@ debian_distro() main() { # $1 - the current rootfs directory, skeleton-custom or target - rm -rf $1/* + sudo rm -rf $1/* # run first stage do_distrorfs_first_stage arm64 ${1} ubuntu-additional_packages_list focal ubuntu do_distrorfs_first_stage $(arch_type) ${1} debian-additional_packages_list $(debian_distro) debian $(plat_name) $(full_rtf) -- Gitee From b64ec4ba4618ccf7b18c30d199666aac08312f01 Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 21 Mar 2025 15:45:19 +0800 Subject: [PATCH 23/32] openamp: add kernel patch for openamp Signed-off-by: weishanshan1084 --- ...f-e2000q-and-phytiumpi-to-enable-hom.patch | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 linux/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch diff --git a/linux/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch b/linux/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch new file mode 100644 index 00000000..fd633fb2 --- /dev/null +++ b/linux/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch @@ -0,0 +1,156 @@ +From fe8617114dbc507141e956ca75b606d07bdb3376 Mon Sep 17 00:00:00 2001 +From: weishanshan1084 +Date: Thu, 20 Mar 2025 15:06:08 +0800 +Subject: [PATCH] modify the dts of e2000q and phytiumpi to enable homo_rproc + +Signed-off-by: weishanshan1084 +--- + .../boot/dts/phytium/pe2204-come-board.dts | 4 ++++ + .../dts/phytium/pe2204-demo-ddr4-local.dts | 4 ++++ + .../boot/dts/phytium/pe2204-demo-ddr4.dts | 4 ++++ + .../boot/dts/phytium/pe2204-edu-board.dts | 4 ++++ + .../boot/dts/phytium/pe2204-hanwei-board.dts | 4 ++++ + .../boot/dts/phytium/pe2204-miniitx-board.dts | 4 ++++ + .../boot/dts/phytium/pe2204-vpx-board.dts | 4 ++++ + arch/arm64/boot/dts/phytium/pe220x.dtsi | 22 +++++++++++++++++++ + .../boot/dts/phytium/phytiumpi_firefly.dts | 4 ++++ + 9 files changed, 54 insertions(+) + +diff --git a/arch/arm64/boot/dts/phytium/pe2204-come-board.dts b/arch/arm64/boot/dts/phytium/pe2204-come-board.dts +index e87b26078224..b74613824b39 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-come-board.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-come-board.dts +@@ -266,3 +266,7 @@ &pwm1 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4-local.dts b/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4-local.dts +index 402d07735b86..57cbeea3163d 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4-local.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4-local.dts +@@ -164,3 +164,7 @@ &dc0 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4.dts b/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4.dts +index c12eb5810524..cd3c6474d184 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-demo-ddr4.dts +@@ -234,3 +234,7 @@ &pmdk_dp { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-edu-board.dts b/arch/arm64/boot/dts/phytium/pe2204-edu-board.dts +index 7a47cbc375a2..f92ea3337abd 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-edu-board.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-edu-board.dts +@@ -345,3 +345,7 @@ &keypad { + 0x03030044 /*KEY_44*/>; + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-hanwei-board.dts b/arch/arm64/boot/dts/phytium/pe2204-hanwei-board.dts +index d9e1eae59d98..ebe40f6d7b6f 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-hanwei-board.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-hanwei-board.dts +@@ -216,3 +216,7 @@ &gpio5 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-miniitx-board.dts b/arch/arm64/boot/dts/phytium/pe2204-miniitx-board.dts +index 2513b7b5e21a..12a73cc24984 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-miniitx-board.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-miniitx-board.dts +@@ -341,3 +341,7 @@ &rng0 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe2204-vpx-board.dts b/arch/arm64/boot/dts/phytium/pe2204-vpx-board.dts +index 22c3c4395b9b..4396a6d3d9f1 100644 +--- a/arch/arm64/boot/dts/phytium/pe2204-vpx-board.dts ++++ b/arch/arm64/boot/dts/phytium/pe2204-vpx-board.dts +@@ -323,3 +323,7 @@ &rng0 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/phytium/pe220x.dtsi b/arch/arm64/boot/dts/phytium/pe220x.dtsi +index 40d952a1a49b..83cfc31d3c6c 100644 +--- a/arch/arm64/boot/dts/phytium/pe220x.dtsi ++++ b/arch/arm64/boot/dts/phytium/pe220x.dtsi +@@ -20,6 +20,16 @@ aliases { + serial3 = &uart3; + }; + ++ reserved-memory { ++ #address-cells = <0x2>; ++ #size-cells = <0x2>; ++ ranges; ++ rproc0: rproc0@b0100000 { ++ no-map; ++ reg = <0x0 0xb0100000 0x0 0x19900000>; ++ }; ++ }; ++ + psci { + compatible = "arm,psci-1.0"; + method = "smc"; +@@ -1015,5 +1025,17 @@ pcie: pcie@40000000 { + iommu-map = <0x0 &smmu 0x0 0x10000>; + status = "disabled"; + }; ++ ++ homo_rproc: homo_rproc@0 { ++ compatible = "homo,rproc"; ++ status = "disabled"; ++ homo_core0: homo_core0@b0100000 { ++ compatible = "homo,rproc-core"; ++ remote-processor = <3>; ++ inter-processor-interrupt = <9>; ++ memory-region = <&rproc0>; ++ firmware-name = "openamp_core0.elf"; ++ }; ++ }; + }; + }; +diff --git a/arch/arm64/boot/dts/phytium/phytiumpi_firefly.dts b/arch/arm64/boot/dts/phytium/phytiumpi_firefly.dts +index e16a4759c40b..cec1a69816c7 100644 +--- a/arch/arm64/boot/dts/phytium/phytiumpi_firefly.dts ++++ b/arch/arm64/boot/dts/phytium/phytiumpi_firefly.dts +@@ -321,3 +321,7 @@ &rng0 { + &vpu0 { + status = "okay"; + }; ++ ++&homo_rproc { ++ status = "okay"; ++}; +-- +2.25.1 + -- Gitee From b652ccf48404c1f043f5464ed56a015691cf9866 Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Fri, 21 Mar 2025 14:54:16 +0800 Subject: [PATCH 24/32] openamp: add rpmsg-demo package Signed-off-by: weishanshan1084 --- package/Config.in | 1 + package/rpmsg-demo/Config.in | 6 ++++++ package/rpmsg-demo/rpmsg-demo.hash | 2 ++ package/rpmsg-demo/rpmsg-demo.mk | 22 ++++++++++++++++++++++ 4 files changed, 31 insertions(+) create mode 100644 package/rpmsg-demo/Config.in create mode 100644 package/rpmsg-demo/rpmsg-demo.hash create mode 100644 package/rpmsg-demo/rpmsg-demo.mk diff --git a/package/Config.in b/package/Config.in index 4541689c..1d1cb466 100644 --- a/package/Config.in +++ b/package/Config.in @@ -471,6 +471,7 @@ menu "Firmware" source "package/zd1211-firmware/Config.in" source "package/phyuboot/Config.in" source "package/phytium-tools/Config.in" + source "package/rpmsg-demo/Config.in" endmenu source "package/18xx-ti-utils/Config.in" source "package/a10disp/Config.in" diff --git a/package/rpmsg-demo/Config.in b/package/rpmsg-demo/Config.in new file mode 100644 index 00000000..34050ae0 --- /dev/null +++ b/package/rpmsg-demo/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_RPMSG_DEMO + bool "rpmsg-demo" + help + Phytium openamp rpmsg-demo. + + https://gitee.com/phytium_embedded/phytium-embedded-docs/blob/master/open-amp/rpmsg-demo-single.c diff --git a/package/rpmsg-demo/rpmsg-demo.hash b/package/rpmsg-demo/rpmsg-demo.hash new file mode 100644 index 00000000..88a0daa7 --- /dev/null +++ b/package/rpmsg-demo/rpmsg-demo.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 0a5047784bf29880b8ed8fa3dbeef5e21a16854788cf96b12efae163212b02fd rpmsg-demo-single.c diff --git a/package/rpmsg-demo/rpmsg-demo.mk b/package/rpmsg-demo/rpmsg-demo.mk new file mode 100644 index 00000000..5cdedc7e --- /dev/null +++ b/package/rpmsg-demo/rpmsg-demo.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# rpmsg-demo +# +################################################################################ + +RPMSG_DEMO_SITE = https://gitee.com/phytium_embedded/phytium-embedded-docs/raw/master/open-amp +RPMSG_DEMO_SOURCE = rpmsg-demo-single.c + +define RPMSG_DEMO_EXTRACT_CMDS + cp $(RPMSG_DEMO_DL_DIR)/$(RPMSG_DEMO_SOURCE) $(@D) +endef + +define RPMSG_DEMO_BUILD_CMDS + $(TARGET_CC) -o $(@D)/rpmsg-demo-single $(@D)/$(RPMSG_DEMO_SOURCE) +endef + +define RPMSG_DEMO_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -D $(@D)/rpmsg-demo-single $(TARGET_DIR)/usr/bin/ +endef + +$(eval $(generic-package)) -- Gitee From 2688a7d8ef3f74d6ebd7d1b2ef4e7542ead2af47 Mon Sep 17 00:00:00 2001 From: weishanshan1084 Date: Fri, 21 Mar 2025 14:57:13 +0800 Subject: [PATCH 25/32] openamp: add packages for setting up phytium IoT development environment Signed-off-by: weishanshan1084 --- .../aarch64-none-elf-toolchain.hash | 2 ++ .../aarch64-none-elf-toolchain.mk | 26 +++++++++++++++++++ .../phytium-iot-environment.mk | 19 ++++++++++++++ .../phytium-iot-environment/phytium_dev.sh | 7 +++++ 4 files changed, 54 insertions(+) create mode 100644 package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.hash create mode 100644 package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.mk create mode 100644 package/phytium-iot-environment/phytium-iot-environment.mk create mode 100755 package/phytium-iot-environment/phytium_dev.sh diff --git a/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.hash b/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.hash new file mode 100644 index 00000000..3ae7bb3e --- /dev/null +++ b/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6f74b1ee370caeb716688d2e467e5b44727fdc0ed56023fe5c72c0620019ecef gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz diff --git a/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.mk b/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.mk new file mode 100644 index 00000000..229e53ba --- /dev/null +++ b/package/aarch64-none-elf-toolchain/aarch64-none-elf-toolchain.mk @@ -0,0 +1,26 @@ +################################################################################ +# +# aarch64-none-elf-toolchain +# +################################################################################ + +AARCH64_NONE_ELF_TOOLCHAIN_VERSION = 10.3-2021.07 +AARCH64_NONE_ELF_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/$(AARCH64_NONE_ELF_TOOLCHAIN_VERSION)/binrel +AARCH64_NONE_ELF_TOOLCHAIN_SOURCE = gcc-arm-$(AARCH64_NONE_ELF_TOOLCHAIN_VERSION)-x86_64-aarch64-none-elf.tar.xz +AARCH64_NONE_ELF_TOOLCHAIN_LICENSE = GPL-3.0+ + +HOST_AARCH64_NONE_ELF_TOOLCHAIN_INSTALL_DIR = $(HOST_DIR)/opt/aarch64-none-elf + +define HOST_AARCH64_NONE_ELF_TOOLCHAIN_INSTALL_CMDS + rm -rf $(HOST_AARCH64_NONE_ELF_TOOLCHAIN_INSTALL_DIR) + mkdir -p $(HOST_AARCH64_NONE_ELF_TOOLCHAIN_INSTALL_DIR) + cp -rf $(@D)/* $(HOST_AARCH64_NONE_ELF_TOOLCHAIN_INSTALL_DIR)/ + + mkdir -p $(HOST_DIR)/bin + cd $(HOST_DIR)/bin && \ + for i in ../opt/aarch64-none-elf/bin/*; do \ + ln -sf $$i; \ + done +endef + +$(eval $(host-generic-package)) diff --git a/package/phytium-iot-environment/phytium-iot-environment.mk b/package/phytium-iot-environment/phytium-iot-environment.mk new file mode 100644 index 00000000..64025743 --- /dev/null +++ b/package/phytium-iot-environment/phytium-iot-environment.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# phytium-iot-environment +# +################################################################################ + +# source included in the package +HOST_PHYTIUM_IOT_ENVIRONMENT_DEPENDENCIES = host-arm-gnu-toolchain host-aarch64-none-elf-toolchain + +define HOST_PHYTIUM_IOT_ENVIRONMENT_EXTRACT_CMDS + cp $(HOST_PHYTIUM_IOT_ENVIRONMENT_PKGDIR)/phytium_dev.sh $(@D) +endef + +define HOST_PHYTIUM_IOT_ENVIRONMENT_INSTALL_CMDS + mkdir -p $(HOST_DIR)/etc/profile.d + $(INSTALL) -D -m 0755 $(@D)/phytium_dev.sh $(HOST_DIR)/etc/profile.d +endef + +$(eval $(host-generic-package)) diff --git a/package/phytium-iot-environment/phytium_dev.sh b/package/phytium-iot-environment/phytium_dev.sh new file mode 100755 index 00000000..f51e936d --- /dev/null +++ b/package/phytium-iot-environment/phytium_dev.sh @@ -0,0 +1,7 @@ +### PHYTIUM DEV SETTING START +export AARCH32_CROSS_PATH=${HOST_DIR}/opt/gcc-arm-none-eabi +export PATH=$PATH:${AARCH32_CROSS_PATH}/bin +export AARCH64_CROSS_PATH=${HOST_DIR}/opt/aarch64-none-elf +export PATH=$PATH:${AARCH64_CROSS_PATH}/bin +export PHYTIUM_DEV_PATH=${HOST_DIR} +### PHYTIUM DEV SETTING END -- Gitee From 6b2b1b7fafdbbcc5b8d9dd1238e36b34f59269e5 Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 21 Mar 2025 16:04:00 +0800 Subject: [PATCH 26/32] openamp: support phytium-standalone Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- configs/openamp_standalone.config | 11 +++++++++ package/Config.in | 1 + package/phytium-standalone/Config.in | 16 +++++++++++++ .../phytium-standalone/phytium-standalone.mk | 24 +++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 configs/openamp_standalone.config create mode 100644 package/phytium-standalone/Config.in create mode 100644 package/phytium-standalone/phytium-standalone.mk diff --git a/configs/openamp_standalone.config b/configs/openamp_standalone.config new file mode 100644 index 00000000..e4434956 --- /dev/null +++ b/configs/openamp_standalone.config @@ -0,0 +1,11 @@ +# kernel patch for phytiumpi, kernel version of 6.6 +BR2_LINUX_KERNEL_PATCH="$(LINUX_PKGDIR)/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch" + +# rpmsg-demo +BR2_PACKAGE_RPMSG_DEMO=y + +# standalone openamp +BR2_PACKAGE_PHYTIUM_STANDALONE=y +BR2_PACKAGE_PHYTIUM_STANDALONE_CPU_NAME="phytiumpi" +BR2_PACKAGE_HOST_PYTHON3=y +BR2_PACKAGE_HOST_PYTHON3_CURSES=y diff --git a/package/Config.in b/package/Config.in index 1d1cb466..1a547ae7 100644 --- a/package/Config.in +++ b/package/Config.in @@ -472,6 +472,7 @@ menu "Firmware" source "package/phyuboot/Config.in" source "package/phytium-tools/Config.in" source "package/rpmsg-demo/Config.in" + source "package/phytium-standalone/Config.in" endmenu source "package/18xx-ti-utils/Config.in" source "package/a10disp/Config.in" diff --git a/package/phytium-standalone/Config.in b/package/phytium-standalone/Config.in new file mode 100644 index 00000000..0d392d4e --- /dev/null +++ b/package/phytium-standalone/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_PHYTIUM_STANDALONE + bool "phytium-standalone" + help + Phytium-Standalone-SDK for OpenAMP + + https://gitee.com/phytium_embedded/phytium-standalone-sdk + +if BR2_PACKAGE_PHYTIUM_STANDALONE + +config BR2_PACKAGE_PHYTIUM_STANDALONE_CPU_NAME + string "CPU name" + help + Supported CPU: + "e2000q", "phytiumpi", "d2000", "ft2004". + +endif diff --git a/package/phytium-standalone/phytium-standalone.mk b/package/phytium-standalone/phytium-standalone.mk new file mode 100644 index 00000000..bbcb2680 --- /dev/null +++ b/package/phytium-standalone/phytium-standalone.mk @@ -0,0 +1,24 @@ +################################################################################ +# +# phytium-standalone +# +################################################################################ + +PHYTIUM_STANDALONE_VERSION = openamp-v1.0 +PHYTIUM_STANDALONE_SITE = https://gitee.com/phytium_embedded/phytium-standalone-sdk.git +PHYTIUM_STANDALONE_SITE_METHOD = git +PHYTIUM_STANDALONE_DEPENDENCIES = host-phytium-iot-environment host-python3 linux +PHYTIUM_STANDALONE_CPU = $(call qstrip,$(BR2_PACKAGE_PHYTIUM_STANDALONE_CPU_NAME)) + +define PHYTIUM_STANDALONE_BUILD_CMDS + if [[ $(LINUX_VERSION_PROBED) = 6.6* ]]; then \ + PHYTIUM_STANDALONE_ARCH=aarch64; \ + fi && \ + . $(HOST_DIR)/etc/profile.d/phytium_dev.sh && \ + cd $(@D)/example/system/amp/openamp_for_linux && \ + script -q -c "$(TARGET_MAKE_ENV) $(MAKE1) config_$(PHYTIUM_STANDALONE_CPU)_$${PHYTIUM_STANDALONE_ARCH}" /dev/null && \ + mkdir -p $(TARGET_DIR)/lib/firmware && \ + $(TARGET_MAKE_ENV) $(MAKE1) image USR_BOOT_DIR=$(TARGET_DIR)/lib/firmware +endef + +$(eval $(generic-package)) -- Gitee From 86a3c4d8efec6fc31ed612fe5aa3f139dd717a1a Mon Sep 17 00:00:00 2001 From: lindongping Date: Fri, 21 Mar 2025 16:08:17 +0800 Subject: [PATCH 27/32] openamp: support phytium-free-rtos Signed-off-by: weishanshan1084 Signed-off-by: lindongping --- configs/openamp_free_rtos.config | 11 +++++++ package/Config.in | 1 + package/phytium-free-rtos/Config.in | 16 ++++++++++ .../phytium-free-rtos/phytium-free-rtos.mk | 29 +++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 configs/openamp_free_rtos.config create mode 100644 package/phytium-free-rtos/Config.in create mode 100644 package/phytium-free-rtos/phytium-free-rtos.mk diff --git a/configs/openamp_free_rtos.config b/configs/openamp_free_rtos.config new file mode 100644 index 00000000..ff7e870e --- /dev/null +++ b/configs/openamp_free_rtos.config @@ -0,0 +1,11 @@ +# kernel patch for phytiumpi, kernel version of 6.6 +BR2_LINUX_KERNEL_PATCH="$(LINUX_PKGDIR)/kernel-patches/openamp/0001-modify-the-dts-of-e2000q-and-phytiumpi-to-enable-hom.patch" + +# rpmsg-demo +BR2_PACKAGE_RPMSG_DEMO=y + +# free-rtos openamp +BR2_PACKAGE_PHYTIUM_FREE_RTOS=y +BR2_PACKAGE_PHYTIUM_FREE_RTOS_CPU_NAME="phytiumpi" +BR2_PACKAGE_HOST_PYTHON3=y +BR2_PACKAGE_HOST_PYTHON3_CURSES=y diff --git a/package/Config.in b/package/Config.in index 1a547ae7..04d5bd7c 100644 --- a/package/Config.in +++ b/package/Config.in @@ -473,6 +473,7 @@ menu "Firmware" source "package/phytium-tools/Config.in" source "package/rpmsg-demo/Config.in" source "package/phytium-standalone/Config.in" + source "package/phytium-free-rtos/Config.in" endmenu source "package/18xx-ti-utils/Config.in" source "package/a10disp/Config.in" diff --git a/package/phytium-free-rtos/Config.in b/package/phytium-free-rtos/Config.in new file mode 100644 index 00000000..69c9146f --- /dev/null +++ b/package/phytium-free-rtos/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_PHYTIUM_FREE_RTOS + bool "phytium-free-rtos" + help + Phytium-FreeRTOS-SDK for OpenAMP + + https://gitee.com/phytium_embedded/phytium-free-rtos-sdk + +if BR2_PACKAGE_PHYTIUM_FREE_RTOS + +config BR2_PACKAGE_PHYTIUM_FREE_RTOS_CPU_NAME + string "CPU name" + help + Supported CPU: + "e2000q", "phytiumpi", "d2000", "ft2004". + +endif diff --git a/package/phytium-free-rtos/phytium-free-rtos.mk b/package/phytium-free-rtos/phytium-free-rtos.mk new file mode 100644 index 00000000..9929dbe2 --- /dev/null +++ b/package/phytium-free-rtos/phytium-free-rtos.mk @@ -0,0 +1,29 @@ +################################################################################ +# +# phytium-free-rtos +# +################################################################################ + +PHYTIUM_FREE_RTOS_VERSION = openamp-v1.0 +PHYTIUM_FREE_RTOS_SITE = https://gitee.com/phytium_embedded/phytium-free-rtos-sdk.git +PHYTIUM_FREE_RTOS_SITE_METHOD = git +PHYTIUM_FREE_RTOS_DEPENDENCIES = host-phytium-iot-environment host-python3 linux +PHYTIUM_FREE_RTOS_CPU = $(call qstrip,$(BR2_PACKAGE_PHYTIUM_FREE_RTOS_CPU_NAME)) + +define PHYTIUM_FREE_RTOS_CONFIGURE_CMDS + cd $(@D) && \ + $(TARGET_MAKE_ENV) ./install.py +endef + +define PHYTIUM_FREE_RTOS_BUILD_CMDS + if [[ $(LINUX_VERSION_PROBED) = 6.6* ]]; then \ + PHYTIUM_FREE_RTOS_ARCH=aarch64; \ + fi && \ + . $(HOST_DIR)/etc/profile.d/phytium_dev.sh && \ + cd $(@D)/example/system/amp/openamp_for_linux && \ + script -q -c "$(TARGET_MAKE_ENV) $(MAKE1) config_$(PHYTIUM_FREE_RTOS_CPU)_$${PHYTIUM_FREE_RTOS_ARCH}" /dev/null && \ + mkdir -p $(TARGET_DIR)/lib/firmware && \ + $(TARGET_MAKE_ENV) $(MAKE1) image USR_BOOT_DIR=$(TARGET_DIR)/lib/firmware +endef + +$(eval $(generic-package)) -- Gitee From 738fc698042ec0684b8605ba670fb06ddd9d3677 Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 25 Mar 2025 09:41:11 +0800 Subject: [PATCH 28/32] linux: update version to support openamp 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 79dfdaa1..06eff676 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="662bfb88959757471794bd9a6089d373903898f3" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4850d0096546d55b0bf9014e572598fd62523f5b" 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 7731f40d..9e34d7fc 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="662bfb88959757471794bd9a6089d373903898f3" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4850d0096546d55b0bf9014e572598fd62523f5b" 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 81b8c4d9..13ad9a03 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.0" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="20635251686c50c94eeea2e8a71a99fb59ee80df" -- Gitee From 18b4b01ba4aa64e82147d642cabf72b5138524d6 Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 25 Mar 2025 14:21:55 +0800 Subject: [PATCH 29/32] README: support xenomai, ethercat, jailhouse and openamp Signed-off-by: lindongping --- README.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/README.md b/README.md index 11675730..7c1e2941 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,85 @@ defconfig默认不编译Phytium-optee,如果需要编译Phytium-optee请执行 生成的根文件系统、内核、TEE OS位于output/images目录。 后续部署及使用方法,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/optee` +### 支持xenomai +本项目还支持编译xenomai,关于xenomai的信息请参考:`https://gitee.com/phytium_embedded/linux-kernel-xenomai` +支持将xenomai内核及用户态的库、工具编译安装到debian系统上。如果需要编译xenomai请执行: +(1)使用phytiumpi_defconfig或者phytiumpi_desktop_defconfig作为基础配置项,合并支持xenomai的配置: +`$ ./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/phytiumpi_xenomai_xxx.config` +`phytiumpi_xenomai_xxx.config`为以下配置片段文件之一: +``` +phytiumpi_xenomai_cobalt_6.6.config (xenomai cobalt 6.6内核+xenomai-v3.3.tar.gz") +phytiumpi_xenomai_mercury_6.6.config (linux 6.6 rt内核+xenomai-v3.3.tar.gz) +``` +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、sdcard.img 镜像位于output/images目录。 +(4)文件的安装路径 +xenomai用户态的库、工具被安装到根文件系统的/usr/xenomai目录。 +关于xenomai的启动及测试工具等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/linux/xenomai` + +### 支持ethercat +本项目还支持编译ethercat,关于ethercat的信息请参考:`https://gitee.com/phytium_embedded/ether-cat` +支持将ethercat驱动及用户态的库、工具编译安装到debian系统上,ethercat支持linux 6.6 rt和xenomai cobalt 6.6内核。如果需要编译ethercat请执行: +(1)使用phytiumpi_defconfig或者phytiumpi_desktop_defconfig作为基础配置项,合并支持rt内核,及ethercat的配置: +`./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/phytiumpi_linux_6.6_rt.config configs/phytiumpi_ethercat.config` +或者合并支持xenomai内核: +`./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/phytiumpi_xenomai_cobalt_6.6.config configs/phytiumpi_ethercat.config` +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、img 镜像位于output/images目录。 +(4)文件的安装路径 +将ethercat的驱动模块安装到根文件系统的/lib/modules/version/ethercat/目录,并且通过将ec_macb加入/etc/modprobe.d/blacklist.conf +黑名单的方式,使得开机时不自动加载ec_macb模块,而是让用户手动加载。 +ethercat用户态的库、工具被安装到根文件系统: +配置文件安装到/etc,其它内容分别被安装到/usr目录下的bin,include,lib,sbin,share。 +关于ethercat的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/linux/ethercat` + +### 支持jailhouse +本项目还支持编译jailhouse,关于jailhouse的信息请参考:`https://gitee.com/phytium_embedded/phytium-jailhouse` +支持将jailhouse编译安装到debian系统上,如果需要编译jailhouse请执行: +(1)使用phytiumpi_defconfig或者phytiumpi_desktop_defconfig作为基础配置项,合并支持jailhouse的配置: +`./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/phytiumpi_jailhouse.config` +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、img 镜像位于output/images目录。 +(4)文件的安装路径 +jailhouse相关的文件被安装到根文件系统: +``` +按照Makefile中的规则, +将jailhouse的驱动jailhouse.ko安装到/lib/modules/version/jailhouse/driver; +jailhouse.bin安装到/lib/firmware; +linux-loader.bin安装到/usr/libexec/jailhouse; +jailhouse和ivshmem-demo安装到/usr/sbin; +python helper脚本安装到/usr/libexec/jailhouse; +jailhouse-config-collect.tmpl和root-cell-config.c.tmpl安装到/usr/share/jailhouse; +jailhouse-completion.bash安装到/usr/share/bash-completion/completions/并改名为jailhouse; +另外,还将configs/*/*.cell安装到/etc/jailhouse; +inmates/demos/*/*.bin安装到/usr/libexec/jailhouse/demos; +configs/arm64/dts/*.dtb安装到/usr/libexec/jailhouse/dtb; +pyjailhouse安装到/usr/lib/python3.11/site-packages, +通过/usr/lib/python3/dist-packages/pyjailhouse.pth文件,将pyjailhouse模块添加到python模块的搜索路径。 +``` +关于jailhouse的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-jailhouse/blob/master/Readme.md` + +### 支持openamp +本项目还支持编译openamp,编译OpenAMP裸跑二进制镜像请参考:`https://gitee.com/phytium_embedded/phytium-standalone-sdk`,编译OpenAMP FreeRTOS二进制镜像请参考:`https://gitee.com/phytium_embedded/phytium-free-rtos-sdk` +支持将openamp二进制镜像、用户空间测试程序安装到debian系统上,openamp只支持linux 6.6内核。如果需要编译openamp请执行: +(1)使用phytiumpi_defconfig或者phytiumpi_desktop_defconfig作为基础配置项,合并支持openamp的配置: +`./support/kconfig/merge_config.sh configs/phytiumpi_xxx_defconfig configs/openamp_xxx.config` +其中,`openamp_xxx.config`为`openamp_standalone.config`或`openamp_free_rtos.config`。 +(2)编译 +`$ make` +(3)镜像的输出位置 +生成的根文件系统、内核、sdcard.img 镜像位于output/images目录。 +(4)文件的安装路径 +将openamp二进制镜像、用户空间测试程序安装到根文件系统: +openamp_core0.elf安装到/lib/firmware,用户空间测试程序安装到/usr/bin。 +关于openamp的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/open-amp` + ## 清理编译结果 (1)`$ make clean` 删除所有编译结果,包括output目录下的所有内容。当编译完一个文件系统后,编译另一个文件系统前,需要执行此命令。 -- Gitee From 69d5a753bf8618a4e42c31ffc46953ca530099aa Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 25 Mar 2025 14:38:08 +0800 Subject: [PATCH 30/32] phytium-ota: update phytium-ota-latest Signed-off-by: lindongping --- .../src/phytium-ota-latest/fitImage/fitImage_latest.hash | 2 +- .../src/phytium-ota-latest/rootfs/rootfs_latest.hash | 2 +- .../phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash b/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash index f386af46..c0de9b99 100644 --- a/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash +++ b/package/phytium-ota/src/phytium-ota-latest/fitImage/fitImage_latest.hash @@ -1 +1 @@ -sha256 f668e6a510588b93e13514a090c24c84395ca51cf53787185c8e625ddea37175 fitImage.tar +sha256 50dd902cc552590a034492af40a2c360aab833a1b810c332dfe0564b17a24247 fitImage.tar diff --git a/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash index 4e235929..68f096fd 100644 --- a/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash +++ b/package/phytium-ota/src/phytium-ota-latest/rootfs/rootfs_latest.hash @@ -1 +1 @@ -sha256 9b01d2a93885a3f523dce6c83b8783ffb1494702e506f637f5ebb648c8173b63 rootfs.tar +sha256 242f324ed0078126c99d8fb6b5b43b4fd4573a543a14f1f1687603a1e39afab9 rootfs.tar diff --git a/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash index 1b47edc4..ac334633 100644 --- a/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash +++ b/package/phytium-ota/src/phytium-ota-latest/uboot/uboot_latest.hash @@ -1,2 +1,2 @@ -sha256 07e42417ca8ab699223f321a9dd24ff5b3dbcf5bba8a344ef63bbb2ff0d59e93 fip-all-optee-4GB.bin +sha256 cc16f989a2d1fe94f103aa50ae70a03b1dad5b7a5523924ecfc2fa555f9adea9 fip-all-optee-4GB.bin -- Gitee From 680f4dbdbf137e505ce7b54d2b18b9054f0e3b21 Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 25 Mar 2025 14:38:49 +0800 Subject: [PATCH 31/32] update phyuboot and jailhouse version Signed-off-by: lindongping --- package/jailhouse/jailhouse.mk | 2 +- package/phyuboot/phyuboot.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/jailhouse/jailhouse.mk b/package/jailhouse/jailhouse.mk index 6e20a932..1793438a 100644 --- a/package/jailhouse/jailhouse.mk +++ b/package/jailhouse/jailhouse.mk @@ -4,7 +4,7 @@ # ################################################################################ -JAILHOUSE_VERSION = 7c80882965c632e1123cba4fd1d13d1114f12965 +JAILHOUSE_VERSION = 1581a8ceaaa1f0a4ec6ea95b6dca3ba5f4e62ba5 JAILHOUSE_SITE = https://gitee.com/phytium_embedded/phytium-jailhouse.git JAILHOUSE_SITE_METHOD = git JAILHOUSE_LICENSE = GPL-2.0 diff --git a/package/phyuboot/phyuboot.mk b/package/phyuboot/phyuboot.mk index 7da8ef37..3fadf3ab 100644 --- a/package/phyuboot/phyuboot.mk +++ b/package/phyuboot/phyuboot.mk @@ -4,7 +4,7 @@ # ################################################################################ -PHYUBOOT_VERSION = 1393e14413f2e3f65597dcd2eb19e307f5636f74 +PHYUBOOT_VERSION = 52881fd67e2453e173c0e6f608d3887598efd0ef PHYUBOOT_SITE = https://gitee.com/phytium_embedded/phytium-rogue-umlibs.git PHYUBOOT_SITE_METHOD = git -- Gitee From 1994b0583f3e5b6107f3f0e09ebf989041505ae5 Mon Sep 17 00:00:00 2001 From: lindongping Date: Tue, 25 Mar 2025 14:40:01 +0800 Subject: [PATCH 32/32] update phytiumpios version to v2.1 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 14e09cb0..2ab25c0d 100755 --- a/board/phytium/common/post-custom-skeleton-debian.sh +++ b/board/phytium/common/post-custom-skeleton-debian.sh @@ -136,7 +136,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.0"' >> $tgtfile + echo 'DISTRIB_DESCRIPTION="Phytium Pi OS V2.1"' >> $tgtfile tgtfile=$RFSDIR/etc/update-motd.d/00-header echo '#!/bin/sh' > $tgtfile -- Gitee