More info about how images are created
This commit is contained in:
		
							
								
								
									
										10
									
								
								brick/scripts/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								brick/scripts/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# Patched EV3 image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The file `ev3-fs.patch` summarizes the changes done to the original V1.09D image.
 | 
				
			||||||
 | 
					You can see some text files are edited, the `d_usbdev.ko` is updated (sources in `../kernel`),
 | 
				
			||||||
 | 
					`uf2d` added (sources in `../uf2daemon`), and a stock `nbd.ko` module is added.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Additionally, the `edimax01.ko` is replaced by now much more popular `rtl8192cu.ko` (also stock).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The init script has a hook for running a shell script from `/mnt/ramdisk/`. This can be used
 | 
				
			||||||
 | 
					for testing different modules etc.
 | 
				
			||||||
							
								
								
									
										36
									
								
								brick/scripts/ev3-fs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								brick/scripts/ev3-fs.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					diff -ur orig-ev3/etc/init.d/ev3init.sh dev-ev3/etc/init.d/ev3init.sh
 | 
				
			||||||
 | 
					--- orig-ev3/etc/init.d/ev3init.sh	1970-01-01 01:00:00.000000000 +0100
 | 
				
			||||||
 | 
					+++ dev-ev3/etc/init.d/ev3init.sh	2017-07-25 15:55:03.642866971 +0100
 | 
				
			||||||
 | 
					@@ -60,3 +60,6 @@
 | 
				
			||||||
 | 
					 sleep 2
 | 
				
			||||||
 | 
					 hciattach /dev/ttyS2 texas 2000000 "flow" "nosleep" $STRING
 | 
				
			||||||
 | 
					 sdptool add SP
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/rtl8192cu.ko
 | 
				
			||||||
 | 
					+. /mnt/ramdisk/rc.local || :
 | 
				
			||||||
 | 
					Only in orig-ev3/home/root/lms2012/sys: exit~
 | 
				
			||||||
 | 
					diff -ur orig-ev3/home/root/lms2012/sys/init dev-ev3/home/root/lms2012/sys/init
 | 
				
			||||||
 | 
					--- orig-ev3/home/root/lms2012/sys/init	1970-01-01 01:00:00.000000000 +0100
 | 
				
			||||||
 | 
					+++ dev-ev3/home/root/lms2012/sys/init	2017-07-26 18:36:03.814459337 +0100
 | 
				
			||||||
 | 
					@@ -5,13 +5,15 @@
 | 
				
			||||||
 | 
					 var=$(printf 'HostStr=%s SerialStr=%s' $(cat /home/root/lms2012/sys/settings/BrickName) $(cat /home/root/lms2012/sys/settings/BTser))
 | 
				
			||||||
 | 
					 echo $var > /home/root/lms2012/sys/settings/UsbInfo.dat
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+insmod ${PWD}/mod/nbd.ko
 | 
				
			||||||
 | 
					+${PWD}/uf2d
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_iic.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_uart.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_power.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_pwm.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_ui.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_analog.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					-insmod ${PWD}/mod/d_usbdev.ko `cat /home/root/lms2012/sys/settings/UsbInfo.dat`
 | 
				
			||||||
 | 
					+insmod ${PWD}/mod/d_usbdev.ko `cat /home/root/lms2012/sys/settings/UsbInfo.dat` file=/dev/nbd0
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_usbhost.ko
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_sound.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					 insmod ${PWD}/mod/d_bt.ko `cat /home/root/lms2012/sys/settings/HwId`
 | 
				
			||||||
 | 
					Binary files orig-ev3/home/root/lms2012/sys/mod/d_usbdev.ko and dev-ev3/home/root/lms2012/sys/mod/d_usbdev.ko differ
 | 
				
			||||||
 | 
					Only in dev-ev3/home/root/lms2012/sys/mod: nbd.ko
 | 
				
			||||||
 | 
					Only in dev-ev3/home/root/lms2012/sys: uf2d
 | 
				
			||||||
 | 
					Only in orig-ev3/lib/modules/2.6.33-rc4/kernel/drivers/net/wireless: edimax01.ko
 | 
				
			||||||
 | 
					Only in dev-ev3/lib/modules/2.6.33-rc4/kernel/drivers/net/wireless: rtl8192cu.ko
 | 
				
			||||||
@@ -1,14 +1,34 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let fs = require("fs")
 | 
					let fs = require("fs")
 | 
				
			||||||
 | 
					  let bootargs = "mem=${memsize} initrd=${filesysaddr},${filesyssize} root=/dev/ram0 rw rootfstype=cramfs console=${console} ip=${ipaddr} lpj=747520 quiet"
 | 
				
			||||||
 | 
					let bootnews = "mem=64M initrd=0xC1180000,10M root=/dev/ram0 rw rootfstype=cramfs console=${console} lpj=747520 quiet musb_hdrc.debug=2"
 | 
				
			||||||
 | 
					let piggy = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function build() {
 | 
					function build() {
 | 
				
			||||||
 | 
					  if (bootnews.length > bootargs.length) {
 | 
				
			||||||
 | 
					    console.log("args too long")
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while (bootnews.length < bootargs.length)
 | 
				
			||||||
 | 
					    bootnews += " "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let cr = fs.readFileSync("cram.bin")
 | 
					  let cr = fs.readFileSync("cram.bin")
 | 
				
			||||||
  if (cr.length > 10878976) {
 | 
					  if (cr.length > 10878976) {
 | 
				
			||||||
    console.log("too big")
 | 
					    console.log("too big")
 | 
				
			||||||
    return
 | 
					    return
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  let img = fs.readFileSync("boot.bin")
 | 
					  let img = fs.readFileSync("EV3 Firmware V1.09D.bin")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (let i = 0; i < bootnews.length; ++i) {
 | 
				
			||||||
 | 
					    if (img[0x21DDA + i] != bootargs.charCodeAt(i)) {
 | 
				
			||||||
 | 
					      console.log("boot args mismatch")
 | 
				
			||||||
 | 
					      return 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    img[0x21DDA + i] = bootnews.charCodeAt(i)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  let off = 0x250000
 | 
					  let off = 0x250000
 | 
				
			||||||
  if (img[off] != 0x45 || img[off + 1] != 0x3d) {
 | 
					  if (img[off] != 0x45 || img[off + 1] != 0x3d) {
 | 
				
			||||||
    console.log("bad magic: " + img[off] + " / " + img[off+1])
 | 
					    console.log("bad magic: " + img[off] + " / " + img[off+1])
 | 
				
			||||||
@@ -17,8 +37,8 @@ function build() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  cr.copy(img, off)
 | 
					  cr.copy(img, off)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let kern = fs.readFileSync("piggy-patched.gzip")
 | 
					  let kern = fs.readFileSync(piggy ? "piggy-patched.gzip" : "linux/arch/arm/boot/uImage")
 | 
				
			||||||
  off = 0x0005540f
 | 
					  off = piggy ? 0x0005540f : 0x00050000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (img[off] != kern[0] || img[off+1] != kern[1]) {
 | 
					  if (img[off] != kern[0] || img[off+1] != kern[1]) {
 | 
				
			||||||
    console.log("bad kernel magic: " + img[off] + " / " + img[off+1])
 | 
					    console.log("bad kernel magic: " + img[off] + " / " + img[off+1])
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,6 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# dd if=EV3\ Firmware\ V1.09D.bin of=orig.cram bs=65536 skip=37 count=400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sudo mkfs.cramfs dev-ev3 cram.bin
 | 
					sudo mkfs.cramfs dev-ev3 cram.bin
 | 
				
			||||||
node img
 | 
					node img
 | 
				
			||||||
ls -l firmware.bin
 | 
					ls -l firmware.bin
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user