From 288e34976598b7064ba2717e087ea1bcd5a53c67 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Fri, 26 Feb 2016 11:49:44 +0300 Subject: [PATCH 1/6] Added man-db to default packages list --- debootstrap-ng.sh | 2 +- debootstrap.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debootstrap-ng.sh b/debootstrap-ng.sh index ea8ec5a98..605da299d 100644 --- a/debootstrap-ng.sh +++ b/debootstrap-ng.sh @@ -229,7 +229,7 @@ EOF module-init-tools mtp-tools nano ntfs-3g ntp parted pkg-config pciutils pv python-smbus rfkill rsync screen stress sudo subversion \ sysfsutils toilet u-boot-tools unattended-upgrades unzip usbutils vlan wireless-tools weather-util weather-util-data wget wpasupplicant \ iptables dvb-apps libdigest-sha-perl libproc-processtable-perl w-scan apt-transport-https sysbench libusb-dev dialog fake-hwclock \ - console-setup console-data kbd console-common unicode-data openssh-server" + console-setup console-data kbd console-common unicode-data openssh-server man-db" # release specific packages # NOTE: wheezy doen't have f2fs-tools package available diff --git a/debootstrap.sh b/debootstrap.sh index fcc331de7..50d261f83 100644 --- a/debootstrap.sh +++ b/debootstrap.sh @@ -135,7 +135,7 @@ device-tree-compiler dosfstools evtest figlet fbset fping git haveged hddtemp hd iperf ir-keytable iotop iozone3 iw less libbluetooth-dev libbluetooth3 libtool libwrap0-dev libfuse2 libssl-dev lirc lsof makedev \ module-init-tools mtp-tools nano ntfs-3g ntp parted pkg-config pciutils pv python-smbus rfkill rsync screen stress sudo subversion \ sysfsutils toilet u-boot-tools unattended-upgrades unzip usbutils vlan wireless-tools weather-util weather-util-data wget \ -wpasupplicant iptables dvb-apps libdigest-sha-perl libproc-processtable-perl w-scan apt-transport-https sysbench libusb-dev dialog fake-hwclock" +wpasupplicant iptables dvb-apps libdigest-sha-perl libproc-processtable-perl w-scan apt-transport-https sysbench libusb-dev dialog fake-hwclock man-db" # additional distributios-specific packages case $RELEASE in From 0eb133c2a27aead5b2bbfa04230f9678993a28d8 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Fri, 26 Feb 2016 12:04:43 +0300 Subject: [PATCH 2/6] Improve logging for sunxi-tools compilation --- common.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common.sh b/common.sh index ad8e6dd83..1b0752870 100644 --- a/common.sh +++ b/common.sh @@ -168,9 +168,9 @@ compile_sunxi_tools (){ cp fex2bin bin2fex /usr/local/bin/ make -s clean >/dev/null 2>&1 rm -f sunxi-fexc sunxi-nand-part - make $CTHREADS 'sunxi-nand-part' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log - make $CTHREADS 'sunxi-fexc' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log - make $CTHREADS 'meminfo' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log + make $CTHREADS 'sunxi-nand-part' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log 2>&1 + make $CTHREADS 'sunxi-fexc' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log 2>&1 + make $CTHREADS 'meminfo' CC=arm-linux-gnueabihf-gcc >> $DEST/debug/install.log 2>&1 } From aad049832a806a8d61649356401738616d3bd101 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Fri, 26 Feb 2016 12:30:06 +0300 Subject: [PATCH 3/6] Added sunxi-tools for all releases --- bin/sunxi-tools_1.3-1_armhf.deb | Bin 0 -> 26368 bytes distributions.sh | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 bin/sunxi-tools_1.3-1_armhf.deb diff --git a/bin/sunxi-tools_1.3-1_armhf.deb b/bin/sunxi-tools_1.3-1_armhf.deb new file mode 100644 index 0000000000000000000000000000000000000000..af3d0b54785d3fc211c6c5b530a5521237efb53d GIT binary patch literal 26368 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�^&>o(%aY0c4pa*oW*KO>$k!m zrhkjB`JE9No5II6<52rd=J>#lA>`~{v`{|q7tjxOEkBXuENF6NnY3+a1nLNY;mehr zHH!ou-Ka^Frn&^eMBoRX?@NzWfvc@WY%)O_PFD6g8e`Ee5j^K+q{2-HfiKOIxt|`Y zn=;yBAESz1n>3iXtWt_$Rp`Iob+>k1q0HiFBGN3*KJ5fe>UbvhMh@8n*@RHF3W#4Y zAvYr;H-4aJ!01MaRaZU)V^SKVm{Yp7!8sEwJJoU0E{}oQvkBzeG2Fw_mvNKJg^yMM zv)k)PnzIL9AUNcBgubrC3TlG8B<^v*6qdchx%~zp=oNYKcx(FXc$eJQkE|#UZ-5byM*AT1US%tU|ksD`e_jRZ8 zEpN~HbYge?S6~h{432RYBp6#hfTiU_b9Nq>?lo^Rn!G*G^18=d2~q=G0g&lPR%|q@3|-)Y`6zFgdL>WNT87q>r|}Anl5tTX zrB;c!3U%)BtRADDK@#P(rHrM*QtcP`=uQCvCx^1W)M6&=Ga>7jqNpL?Q3DD4$E&?aX zwee4|86PRDS-rp5YUjWT2aXl6u^kb8Axh?A-S@3NXP?n=5E)hpQcE{lP21b`X{M3Kv7{rX z-)FgNb?qO6N;TV&oNO8s_LuDyE;zX+4Ji|yNCpu+Pa^+op1 zg!!xUUVxbbgUKXIrKr7!1Yq6YvT9@IB%tANQoPAbu3;vzRt~)khO_g={?TH8=_!%2 zxloJE1~x+f8bFl|E}RJHT!G{NpZwe`1i^3t2dc27{2q(r9gn2t`omw%g!6^%`{-3Y zBvLwcn1%5qpGDQQ>s_^^7xj!UhGy9aV7lm%^`5wo%MZ{lAaHXbk{3o4s_wJV((8fC8P>*zToC}~2L<11NY6;a zzpQ7R*}yT_npprA50l{iILc>Uyq{S9-r>psg1n97x$^?QW)i7dHu9^F)4K2Er)%Q$ z?x@!5x!AFsw_Gc9N0CtI2~hcN7YU|f;A^Lj$Vp??N2hm9qV2ML@}jBv0)rUHxFP%K zYJje2KtVSiWs|dkSf4&mH8X)P0@0jMh^1h<2Z3Ig%Ns`_~t`8Bhtc!Vkvu znxG_Xl6^l-F*P0ZaJzh*JyZK|IBFV<<m)LWMz|84QgrVb{A~Km!@m~{MxEgUM*zB1k)cF9}f*~xuFK1(LlLZEi5`MUtQo%XBYCEXBYtNCP?qydaX1iY)*ruu{XBHq7Ad#Zwu1w0^1x;eFO_F zQoMEf#sN3?tb7?+ET2}Ccc_`Fu$$+#klStOlNBeI%;6r zWn3-oOZf;CPp|05hx9);@oPXOp(qV`^hX4`MiBxzJ_#Xq%)Cq#a`D+JiltkgX78;2;2GkbHxww1eAIFd# ze9095|$@a~S8CMJ*=^@?^QobxzagRDBRRi*;13{5#9q>!-bpp^Bd{xTjWC+;- zjslWzwWMGc3Ec#@3N#pxqD@QfFJlX;E!{jvD~kPM)!8K=o}a)mtDQE))msNOdugf3 zKr;>$;A=m8i@@uC87b`AB=oDYp-!@drNP)~Naw~|FFR@6&bHk--rScdq>J_bp-=*E zctml|-8VBnP*AunGwQka6E)C*caAI{;^nY@kXh7?qf<4rh>wlpR>%2veW60C+#v~- z>R26sC12~IDJZvs^W;#o3qy+4#2-2|PNqE#4ObeUVCV>y!!^b*oh3Lgz((Xud2bCu zQhYs(K7Bs2(4Be>-osV#q1_}%V1DF{ZeVfu!Ydkb?M5c2kA6}g6Wo}dc#l-#MDmO( zHZI;c&DL;^6oa~oBBHs8z1!xBix$?q_d~7BM*XGFtnM6h85CP1n0$j=JNJ?LScmp$ zmfr?>RxX5|fo{($TSHc*d2d)BG(Q$dCxZjXz~Mj6_)px5r~EikB!dWdf9Z1+fi6DU zG0y+?I`Lu0$`^~_9+a!!iS!n;;%ki0pziw3UqND?XTU0cXrS{)Wl6a9A%$w9>C~JE ze0FQ|+n@KULpv_mPTBvouW;{=^cr&r59A+o7ik`|0xp~S0&24IXgWD!&O?}MI&KGf zDIffnuRmF#Sz!!xwsMGBK@D5fCS6ssNuDZCGS0M!%92cGhGh}AVtm-Z0U^<*>%M4> zo9h^)W~ROi0|+s5>Z`laZ2Q*spj9D{Zbo29 zF06$DGt7>WAX5_#Nwf9Xs>L$nUZH%7W=_g86@maWHP~Wa1#`09s@(FDTC#M2OH-y1>vbWs&4Fb_lD!4S!N7;ZUN zCbTf@Umh`mZ^h}U>=bJMOmnl7rr4##@QjA5wHWtAObaeeEonZKY7yFO$&;Bi4F6XR z3*t9PqE$P=aZ==y@9}_F|Nm6+pWgPfuR@cVwi5Oj3;Q>tx*b^S_>4<9gQhg}zFq!A zacY}dBWSCd%Wa!zSQtGGeaxa%MJRmw?4=i-q2y>$T0!?l&z&j<8Pm}ueHZOun3EZY zPPmq1kF0isbdbjS?V>kF_H;XK`ab0)7*(Tmp!#ie!^48GJC+blxjeovHQ+l0L4FiE zNQn+slEi2Pe52BB-LJnjfKI5O^c+rM!$Ltu##-?ma#by#oCM$E$j=p3Kk}>JnHmW2 zekj8}d+}t~mw9ys0inzU6lh42hh2M5ZJj!jhp+nLh%$8`W9%N?SK9U|cu6Td`29aq zi5JzNVO5?~*!u#6IJT0-*GwgFdL/dev/null 2>&1" + +# install sunxi-tools +cp $SRC/lib/bin/sunxi-tools_1.3-1_armhf.deb $DEST/cache/sdcard/tmp/ +# libusb dependency should already be satisfied by usbutils +chroot $DEST/cache/sdcard /bin/bash -c "dpkg -i /tmp/sunxi-tools_1.3-1_armhf.deb" } From 81f1096be549d6d6dd08796ba421d78676a46fd2 Mon Sep 17 00:00:00 2001 From: WereCatf Date: Fri, 26 Feb 2016 12:38:30 +0200 Subject: [PATCH 4/6] Spruce h3disp up a bit Add the ability to specify HDMI colour-range, don't spit out changelogs and all that by default since those are not useful for most users (use -H instead of -h to see those), and use colour to make the output a bit more readable if the terminal is capable of colour ( https://dl.dropboxusercontent.com/u/11811685/h3disp.png ) -- does not output colour when redirected to a file, for example. --- scripts/h3disp | 82 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 11 deletions(-) diff --git a/scripts/h3disp b/scripts/h3disp index 58492caca..21740c1b1 100755 --- a/scripts/h3disp +++ b/scripts/h3disp @@ -25,6 +25,10 @@ # # CHANGES: # +# v0.3: Added the ability to set the colour-range HDMI-output and spruced the +# output of h3disp in general with a splash of colour. Also, don't spit +# out so much text by default. +# # v0.2: Added non-interactive mode. You can provide one or two arguments on # the command line, eg. 'h3disp -m 1080p60 -d' (1920x1080@60Hz DVI) or # 'h3disp -m 720i' (1280x720@30Hz HDMI). Complete list of modes via @@ -72,6 +76,17 @@ Main() { : else ParseOptions "$@" + if [ -v ColourRange ]; then + re='^[0-9]+$' + if ! [[ ${ColourRange} =~ ${re} ]] ; then + echo "$0: Invalid colour-range specified, only values 0-2 are supported for now!" + exit 1 + fi + if [[ ${ColourRange} -lt 0 || ${ColourRange} -gt 2 ]] ; then + echo "$0: Invalid colour-range specified, only values 0-2 are supported for now!" + exit 1 + fi + fi case ${VideoMode} in 0|480i) # res HDMIMode=0 @@ -134,8 +149,13 @@ Main() { } # Main ParseOptions() { - while getopts 'hvVdDm:M:' c ; do + while getopts 'hHvVdDm:M:c:C:' c ; do case ${c} in + H) + export FullUsage=TRUE + DisplayUsage + exit 0 + ;; h) DisplayUsage exit 0 @@ -158,33 +178,64 @@ ParseOptions() { # The HDMI mode in question export VideoMode=${OPTARG} ;; + c|C) + # The colour-range in question + export ColourRange=${OPTARG} + ;; esac done } # ParseOptions DisplayUsage() { - echo -e "Usage: ${0##*/} -m [video mode] [-d]\n" - echo -e "############################################################################\n" - echo "Detailed Description:" + # check if stdout is a terminal... + if test -t 1; then + # see if it supports colors... + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + BOLD="$(tput bold)" + NC='\033[0m' # No Color + LGREEN='\033[1;32m' + fi + fi + echo -e "Usage: ${BOLD}${0##*/} [-h/-H] -m [video mode] [-d] [-c [0-2]]${NC}\n" + echo -e "############################################################################" + if [ ${FullUsage} ]; then + echo -e "\nDetailed Description:" grep "^#" "$0" | grep -v "^#\!/bin/bash" | sed 's/^#//' - echo -e "\n Short summary: This is a tool to set the display resolution of your Orange" + fi + echo -e "\n This is a tool to set the display resolution of your Orange" echo -e " Pi by patching script.bin.\n\n In case you use an HDMI-to-DVI converter\c" - echo -e " please use the -d switch.\n\n The resolution can be set using the -m switch.\c" + echo -e " please use the ${LGREEN}-d${NC} switch.\n\n The resolution can be set using the ${LGREEN}-m${NC} switch.\c" echo -e " The following resolutions\n are currently supported:\n" ShowVideoModes + echo -e " You can also specify the colour-range for your HDMI-display with the ${LGREEN}-c${NC} switch." + echo -e "\n The following values for ${LGREEN}-c${NC} are currently supported:\n" + echo -e " ${BOLD}0${NC} -- RGB range 16-255 (Default, use \"${LGREEN}-c 0${NC}\")" + echo -e " ${BOLD}1${NC} -- RGB range 0-255 (Full range, use \"${LGREEN}-c 1${NC}\")" + echo -e " ${BOLD}2${NC} -- RGB range 16-235 (Limited video, \"${LGREEN}-c 2${NC}\")\n" echo -e "############################################################################\n" } # DisplayUsage ShowVideoModes() { + # check if stdout is a terminal... + if test -t 1; then + # see if it supports colors... + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + BOLD="$(tput bold)" + NC='\033[0m' # No Color + LGREEN='\033[1;32m' + fi + fi OIFS=${IFS} IFS="|" awk -F" " '/ # res/ {print $1}' <"${0}" | tr -d ')' | grep -v 'awk' | while read ; do set ${REPLY} - echo -e " ${2}\tuse \"-m ${2}\" or \"-m ${1}\"" + echo -e " ${BOLD}${2}${NC}\tuse \"${LGREEN}-m ${2}${NC}\" or \"${LGREEN}-m ${1}${NC}\"" done IFS=${OIFS} - echo -e "\n Two examples:\n\n ${0##*/} -m 1080p60 -d' (1920x1080@60Hz DVI)" - echo -e " ${0##*/} -m 720i' (1280x720@30Hz HDMI)\n" + echo -e "\n Two examples:\n\n '${BOLD}${0##*/}${NC} ${LGREEN}-m 1080p60 -d${NC}' (1920x1080@60Hz DVI)" + echo -e " '${BOLD}${0##*/}${NC} ${LGREEN}-m 720i${NC}' (1280x720@30Hz HDMI)\n" } # ShowVideoModes PatchScriptBin() { @@ -217,7 +268,10 @@ PatchScriptBin() { MyTmpFile="$(mktemp /tmp/${0##*/}.XXXXXX)" # convert script.bin to temporary fex file - bin2fex <"${ScriptBin}" 2>/dev/null | grep -v "^screen0_output" \ + local filter="^screen0_output" + if [ -v ColourRange ]; then + filter="^screen0_out"; fi + bin2fex <"${ScriptBin}" 2>/dev/null | grep -v ${filter} \ | grep -v "^screen1_output" | grep -v "hdcp_enable" \ | grep -v "hdmi_cts_compatibility" >"${MyTmpFile}" if [ $? -ne 0 ]; then @@ -229,6 +283,10 @@ PatchScriptBin() { cp -p "${ScriptBin}" "${Path2ScriptBin}/script.bin.bak" sed -i "/\[disp_init\]/a screen0_output_type = 3\nscreen0_output_mode = $1\nscreen1_output_type = 3\nscreen1_output_mode = $1" "${MyTmpFile}" + + if [ -v ColourRange ]; then + sed -i "/\[disp_init\]/a screen0_out_color_range = ${ColourRange}" "${MyTmpFile}" + fi if [ "X$2" = "XTRUE" ]; then # add entries necessary for HDMI-to-DVI adapters @@ -239,9 +297,11 @@ PatchScriptBin() { fex2bin "${MyTmpFile}" "${ScriptBin}" 2>/dev/null if [ $? -ne 0 ]; then mv "${Path2ScriptBin}/script.bin.bak" "${ScriptBin}" - echo -e "Aborted\nWriting script.bin went wrong. Nothing changed" >&2 + echo -e "Aborted\nWriting script.bin went wrong. Nothing changed." >&2 + echo -e "You may look at ${MyTmpFile} to see if there is an error there." >&2 logger "Writing script.bin went wrong. Nothing changed" exit 1 + else rm "${MyTmpFile}" fi } # PatchScriptBin From 1dac2fed57b4ae55c98ad01d5479a88e5e057972 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Fri, 26 Feb 2016 12:03:51 +0100 Subject: [PATCH 5/6] Cheap SD card patch on DEV and NEXT too --- .../u-boot-dev/u-boot-02-support-cheap-mmc.patch | 12 ++++++++++++ .../u-boot-next/u-boot-02-support-cheap-mmc.patch | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 patch/u-boot/u-boot-dev/u-boot-02-support-cheap-mmc.patch create mode 100644 patch/u-boot/u-boot-next/u-boot-02-support-cheap-mmc.patch diff --git a/patch/u-boot/u-boot-dev/u-boot-02-support-cheap-mmc.patch b/patch/u-boot/u-boot-dev/u-boot-02-support-cheap-mmc.patch new file mode 100644 index 000000000..678dff164 --- /dev/null +++ b/patch/u-boot/u-boot-dev/u-boot-02-support-cheap-mmc.patch @@ -0,0 +1,12 @@ +diff -Nur a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c +--- a/drivers/mmc/sunxi_mmc.c 2016-02-25 10:30:30.000000000 +0800 ++++ b//drivers/mmc/sunxi_mmc.c 2016-02-25 10:46:07.723851155 +0800 + +@@ -269,6 +269,6 @@ + unsigned i; + unsigned *buff = (unsigned int *)(reading ? data->dest : data->src); + unsigned byte_cnt = data->blocksize * data->blocks; +- unsigned timeout_msecs = byte_cnt >> 8; ++ unsigned timeout_msecs = byte_cnt >> 6; + if (timeout_msecs < 2000) + timeout_msecs = 2000; \ No newline at end of file diff --git a/patch/u-boot/u-boot-next/u-boot-02-support-cheap-mmc.patch b/patch/u-boot/u-boot-next/u-boot-02-support-cheap-mmc.patch new file mode 100644 index 000000000..678dff164 --- /dev/null +++ b/patch/u-boot/u-boot-next/u-boot-02-support-cheap-mmc.patch @@ -0,0 +1,12 @@ +diff -Nur a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c +--- a/drivers/mmc/sunxi_mmc.c 2016-02-25 10:30:30.000000000 +0800 ++++ b//drivers/mmc/sunxi_mmc.c 2016-02-25 10:46:07.723851155 +0800 + +@@ -269,6 +269,6 @@ + unsigned i; + unsigned *buff = (unsigned int *)(reading ? data->dest : data->src); + unsigned byte_cnt = data->blocksize * data->blocks; +- unsigned timeout_msecs = byte_cnt >> 8; ++ unsigned timeout_msecs = byte_cnt >> 6; + if (timeout_msecs < 2000) + timeout_msecs = 2000; \ No newline at end of file From 2e6356337615b52344041c9354fd8ad5db578799 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Fri, 26 Feb 2016 12:06:19 +0100 Subject: [PATCH 6/6] Version UP and updated Lemaker Guitar kernel source --- configuration.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration.sh b/configuration.sh index d76c60e66..30430afbb 100644 --- a/configuration.sh +++ b/configuration.sh @@ -27,7 +27,7 @@ # common options - REVISION="5.03" # all boards have same revision + REVISION="5.04" # all boards have same revision ROOTPWD="1234" # Must be changed @first login MAINTAINER="Igor Pecovnik" # deb signature MAINTAINERMAIL="igor.pecovnik@****l.com" # deb signature @@ -438,7 +438,7 @@ KERNEL_DEFAULT_BRANCH="s500-master" KERNEL_DEFAULT_SOURCE="linux-s500" KERNEL_NEXT='https://github.com/LeMaker/linux-actions' - KERNEL_NEXT_BRANCH="linux-linaro-3.10.94-test" + KERNEL_NEXT_BRANCH="linux-3.10.y" KERNEL_NEXT_SOURCE="linux-s500" UBOOT_DEFAULT="https://github.com/LeMaker/u-boot-actions" UBOOT_DEFAULT_BRANCH="s500-master"