junk:checkpoint-v-80.html

Check Point V-80をいじり倒す

まだWIP

U-Bootなんもわからん

最終目標はDebianを入れてDockerを動かす

簡素な設定ファイルを使用してU-Bootからディストリビューションのカーネルなどを起動できる機能

本体の公式FWを起動してexpertシェルから設定を投入する。

USBメモリの/にextlinux.confがある想定だがパスを変えれば/bootとかに置いたものも認識する

run bootcmd_ow_usb; run bootcmd_ow_emmcはOpenWRT用の設定

OpenWRTインストール手順

# fw_setenv bootcmd_ow_sysboot 'usb start; sysboot usb 0:1 any ${loadaddr} /extlinux.conf;'
# fw_setenv bootcmd 'set cp_quiet; run set_bootargs_vx; run bootcmd_ow_sysboot; run bootcmd_ow_usb; run bootcmd_ow_emmc; run bootcmd_part${activePartition};'
  • ここで指定するファイルはmkimageで作ったuimageではなく生イメージでOK
  • kernelはgzip圧縮したもの(vmlinuz)はダメなので解凍する
label debian
    kernel /boot/vmlinux-6.6.51-mvebu-cortexa72
    initrd /boot/initrd.img-6.6.51-mvebu-cortexa72
    fdt /boot/armada-7040-v-80.dtb
    append console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 earlyprink root=/dev/sda2 rw rootwait mvpp2x.queue_mode=1 ethaddr=${ethaddr} eth1addr=${eth1addr} eth2addr=${eth2addr}  eth3addr=${eth3addr}

OpenWRTのカーネルを基にDebianで必要っぽい機能を有効化したもの

https://github.com/junk-labs/debian-mvebu_cortexa72/releases/tag/Releasefornow

  • lan1~lan5=筐体の印字
  • eth0 DSAの根本(lan1~lan5の状態に応じて自動的に構成されるので触らない)
  • eth1 WANポート

ethtoolを使えば設定変更できるかも

auto lo
iface lo inet loopback

# WAN Port
allow-hotplug eth1
iface eth1 inet dhcp

# LAN PORT
allow-hotplug lan1
iface lan1 inet dhcp

allow-hotplug lan2
iface lan2 inet dhcp

allow-hotplug lan3
iface lan3 inet dhcp

allow-hotplug lan4
iface lan4 inet dhcp

allow-hotplug lan5
iface lan5 inet dhcp

openwrtをUSBメモリとemmcにインストールするための設定済

activeConfig=1
activePartition=1
adsl_partition_mmc_blk=0x4E1800
adsl_partition_mmc_blk_cnt=0x800
adsl_reserved_space=1
arch=arm
baudrate=115200
board=mvebu_armada-8k
board_name=mvebu_armada-8k
bootaddr=0x6000200
bootcmd=set cp_quiet; run set_bootargs_vx; run bootcmd_ow_usb; run bootcmd_ow_emmc; run bootcmd_part${activePartition};
bootcmd_legacy=run get_images; run set_bootargs; booti $kernel_addr $ramfs_addr $fdt_addr
bootcmd_ow_emmc=run set_mmc_internal; mmc read ${loadaddr} ${prim_header_mmc_blk} 4 && source ${loadaddr}
bootcmd_ow_usb=usb start; load usb 0:1 ${loadaddr} boot.scr && source ${loadaddr}
bootcmd_part1=run set_bootargs_vx; run cpboot_prim;
bootcmd_part2=run set_bootargs_vx; run cpboot_sec;
bootdelay=2
bootfile=fw1_vx_dep_R80_992001653_20.img
bootloader_version=992000129
brandingFileExtracted=0
burn_default=run set_mmc_internal ; mmc write ${kern_src_addr} ${def_kern_dest_mmc_blk} ${kern_blk_count}; mmc write ${dtb_src_addr} ${def_dtb_dest_mmc_blk} ${dtb_blk_count}; mmc write ${rootfs_src_addr} ${def_rootfs_dest_mmc_blk} ${rootfs_blk_count};
burn_primary=run set_mmc_internal ; mmc write ${loadaddr} ${prim_header_mmc_blk} 1; mmc write ${kern_src_addr} ${prim_kern_dest_mmc_blk} ${kern_blk_count}; mmc write ${dtb_src_addr} ${prim_dtb_dest_mmc_blk} ${dtb_blk_count}; mmc erase ${prim_rootfs_dest_mmc_blk} ${min_erase_blk_cnt};
change_config=run switch_config set_bootcmd_normal bootcmd
confirm_boot=run set_bootcmd_normal bootcmd
console=console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000
cp_boot_mode=1
cp_boot_no_console_output=0
cp_quiet=quiet
cp_uboot=true
cpboot_prim=run set_mmc_internal; mmc read ${kernel_addr_r} ${prim_kern_dest_mmc_blk} ${kernel_partition_block_count}; mmc read ${fdt_addr_r} ${prim_dtb_dest_mmc_blk} ${dtb_partition_block_count}; booti ${kernel_addr_r} - ${fdt_addr_r}
cpboot_sec=run set_mmc_internal; mmc read ${kernel_addr_r} ${secondary_kern_dest_mmc_blk} ${kernel_partition_block_count}; mmc read ${fdt_addr_r} ${secondary_dtb_dest_mmc_blk} ${dtb_partition_block_count}; booti ${kernel_addr_r} - ${fdt_addr_r}
cpnumofcores=maxcpus=4
cpu=armv8
crash_kernel=crashkernel=30M
def_rootfs_blk_offset=9960
def_sw_blk_cnt=0x96000
def_sw_dest_mmc_blk=0x306000
default_sw_reserved_space=300
dmz_mac_addr=00:00:00:00:00:00
dsl2_mac_addr=00:00:00:00:00:00
dsl3_mac_addr=00:00:00:00:00:00
dsl_action=5
dsl_mac_addr=00:00:00:00:00:00
dtb_blk_count=32
dtb_partition_block_count=0x800
dtb_reserved_space=1
dtb_src_addr=f397fdb
erase_default_sw=run set_mmc_internal; mmc erase ${def_sw_dest_mmc_blk} ${min_erase_blk_cnt}
erase_primary_secondary=run primary_part_erase; run secondary_part_erase
erase_storage=run set_mmc_internal; mmc erase ${storage_partition_mmc_blk} ${min_erase_blk_cnt}
eth1addr=00:1C:7F:**:**:1F
eth2addr=00:51:82:**:**:02
eth3addr=00:51:82:**:**:03
ethact=mvpp2-1
ethaddr=00:1C:7F:9C:0F:20
ethprime=eth1
extra_params=pci=pcie_bus_safe
fdt_addr_r=0x6f00000
fdt_high=0xffffffffffffffff
fdt_name=fdt.dtb
fdtcontroladdr=7f5cdcb0
fileaddr=6000000
filesize=93ae76c
flash_erase=run erase_default_sw; run erase_storage
flash_secondary_erase=run secondary_part_erase; run erase_storage; run logs_erase
format_fs_parts=0
format_pfrm_part=0
fwtmp_dir_size=60
gatewayip=10.4.50.254
hardware_capabilities=0
hostname=marvell
hw_mac_addr=00:1C:7F:9C:0F:1F
image_header_blk_cnt=0x1
initrd_addr=0xa00000
initrd_size=0x2000000
ipaddr=192.168.1.1
kern_blk_count=9959
kern_reserved_space=48
kern_src_addr=60003a0
kernel_addr_r=0x7000000
kernel_partition_block_count=0x18000
lan1_mac_addr=00:1C:7F:9C:0F:20
lan2_mac_addr=00:1C:7F:9C:0F:20
lan3_mac_addr=00:1C:7F:9C:0F:20
lan4_mac_addr=00:1C:7F:9C:0F:20
lan5_mac_addr=00:1C:7F:9C:0F:20
loadaddr=0x6000000
logs_erase=run set_mmc_internal; mmc erase ${logs_partition_mmc_blk} ${min_erase_blk_cnt}
logs_partition_mmc_blk=0x39C000
logs_partition_mmc_blk_cnt=0x145000
logs_reserved_space=650
marketing_capabilities=0
marketing_name=1550
mgmt_opq=s/43sT9JjwQ=:vzslyrP2LOE=:Xx2Cb
mgmt_signature=V/kSoeWB06ElMO17bN7ESCGNR/32qjV1H1FxbdntF3Q8FQSDLz+zCnuCMpK6q9bkDaXR5OoHXTxxHCKvHnZxWA==
mgmt_signature_ver=1
min_erase_blk_cnt=0x400
mmc_blk_dev=1
mmc_load=ext4load mmc 1:1
mmc_start_reserved_space=10
mtc_mode_rst_cnt=0
netdev=eth1
netmask=255.255.255.0
num_of_flash_writes=166768336
preset=0
preset_cfg_reserved_space=1
prim_dtb_dest_mmc_blk=0x1D000
prim_header_mmc_blk=0x5000
prim_kern_dest_mmc_blk=0x5001
prim_rootfs_dest_mmc_blk=0x1D800
prim_rootfs_partition_size=0x168000
primary_part_erase=run set_mmc_internal; mmc erase ${prim_header_mmc_blk} ${min_erase_blk_cnt}
ramdisk_addr_r=0x8000000
ramfs_name=-
recoverFlag=0
recover_boot=run switch_active ; run set_recover_flags ; run set_bootcmd_normal bootcmd
reset_to_default_finalize=run secondary_part_erase; run erase_storage; run logs_erase
return_to_default=cp_reset_to_default
rootfs_blk_count=40366
rootfs_reserved_space=720
rootpath=/srv/nfs/
secondary_dtb_dest_mmc_blk=0x19D800
secondary_header_mmc_blk=0x185800
secondary_kern_dest_mmc_blk=0x185801
secondary_part_erase=run set_mmc_internal; mmc erase ${secondary_header_mmc_blk} ${min_erase_blk_cnt}
serial_number=WA20C01731
serverip=192.168.0.2
set_bootargs=setenv bootargs ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 earlyprink root=/dev/mmcblk1p1 rw rootwait
set_bootargs_vx=run set_console ; setenv bootargs $console $crash_kernel mvpp2x.queue_mode=1 ${cp_quiet} blkdevparts=mmcblk${mmc_blk_dev}:${kern_reserved_space}M@${mmc_start_reserved_space}M(kernel-1),${dtb_reserved_space}M(dtb-1),${rootfs_reserved_space}M(rootfs-1),${kern_reserved_space}M(kernel-2),${dtb_reserved_space}M(dtb-2),${rootfs_reserved_space}M(rootfs-2),${default_sw_reserved_space}M(default_sw),${logs_reserved_space}M(logs),${preset_cfg_reserved_space}M(preset_cfg),${adsl_reserved_space}M(adsl),-(storage) ${cpnumofcores}
set_bootcmd_normal=setenv bootcmd "run bootcmd_part$activePartition "; saveenv
set_bootcmd_recover=setenv bootcmd run recover_boot ; saveenv
set_console=setenv console console=ttyS0,${baudrate} earlycon=uart8250,mmio32,0xf0512000
set_mmc_internal=mmc dev 1
set_recover_flags=setenv recoverFlag 1 ; setenv upgradeFlag 0
soc=mvebu
stderr=serial@512000
stdin=serial@512000
stdout=serial@512000
storage_partition_mmc_blk=0x4E2000
storage_partition_mmc_blk_cnt=0x1F4000
sub_hw_ver=MRV
switch_active=run switch_active_from_$activePartition
switch_active_from_1=setenv activePartition 2 ; saveenv
switch_active_from_2=setenv activePartition 1 ; saveenv
switch_config=run switch_config_from_$activeConfig
switch_config_from_1=setenv activeConfig 2 ; saveenv
switch_config_from_2=setenv activeConfig 1 ; saveenv
tmp_dir_size=20
unitModel=V0
unitVer=1
upgradeFlag=0
upgrade_boot=run switch_active ; run set_bootcmd_recover ; setenv upgradeFlag 1 ; saveenv ; run bootcmd_part$activePartition
usb_filename=fw1_vx_dep_R80_992001682_20.img
vendor=Marvell
  ?       - alias for 'help'
  avs     - Set/Get Adaptive Voltage Scaling (AVS) value

  base    - print or set address offset
  bdinfo  - print Board Info structure
  blkcache- block cache diagnostics and control
  boot    - boot default, i.e., run 'bootcmd'
  bootd   - boot default, i.e., run 'bootcmd'
  bootefi - Boots an EFI payload from memory
  bootelf - Boot from an ELF image in memory
  booti   - boot arm64 Linux Image image from memory
  bootm   - boot application image from memory
  bootp   - boot image via network using BOOTP/TFTP protocol
  bootvx  - Boot vxWorks from an ELF image
  bubt    - Burn a u-boot image to flash
  cmp     - memory compare
  coninfo - print console devices and information
  cp      - memory copy
  cp_blob_update- cp_blob_update  - set blob params from uboot enviroment.

  cp_reset_to_default- cp_reset_to_default - restore default image.

  crc32   - checksum calculation
  dcache  - enable or disable data cache
  dhcp    - boot image via network using DHCP/TFTP protocol
  dm      - Driver model low level access
  echo    - echo args to console
  editenv - edit environment variable
  env     - environment handling commands
  ethsw   - Ethernet l2 switch commands
  exit    - exit script
  ext2load- load binary file from a Ext2 filesystem
  ext2ls  - list files in a directory (default /)
  ext4load- load binary file from a Ext4 filesystem
  ext4ls  - list files in a directory (default /)
  ext4size- determine a file's size
  ext4write- create a file in the root directory
  false   - do nothing, unsuccessfully
  fatinfo - print information about filesystem
  fatload - load binary file from a dos filesystem
  fatls   - list files in a directory (default /)
  fatsize - determine a file's size
  fdt     - flattened device tree utility commands
  fstype  - Look up a filesystem type
  go      - start application at address 'addr'
  gpio    - query and control gpio pins
  gzwrite - unzip and write memory to block device
  help    - print command description/usage
  i2c     - I2C sub-system
  icache  - enable or disable instruction cache
  iminfo  - print header information for application image
  imxtract- extract a part of a multi-image
  init_88e6352- init 88e6352
  init_88e6352_factory- init 88e6352_factory
  ir      - ir    - Reading and changing internal register values.

  itest   - return true/false on integer compare
  ledCtl  - ledCtl <LED> <color> <blink>

  load    - load binary file from a filesystem
  loadb   - load binary file over serial line (kermit mode)
  loads   - load S-Record file over serial line
  loadx   - load binary file over serial line (xmodem mode)
  loady   - load binary file over serial line (ymodem mode)
  loop    - infinite loop on address range
  ls      - list files in a directory (default /)
  lzmadec - lzma uncompress a memory region
  map     - Display address decode windows

  md      - memory display
  mdio    - MDIO utility commands
  menu    - menu

  mii     - MII utility commands
  mm      - memory modify (auto-incrementing address)
  mmc     - MMC sub system
  mmcinfo - display MMC info
  mv_fw_info- Prints service CPU firmware information
  mv_get_counters- Get gop counters
  mvsw_reg- marvell 88e6352 switch register access
  mw      - memory write (fill)
  network - network [enable|disable|status]

  nfs     - boot image via network using NFS protocol
  nm      - memory modify (constant address)
  part    - disk partition related commands
  pci     - list and access PCI Configuration Space
  phy_fw_down- phy_fw_down - Downloads x3220/3310 Ethernet transceiver PHY firmware.

  ping    - send ICMP ECHO_REQUEST to network host
  printenv- print environment variables
  pxe     - commands to get and boot from pxe files
  regulator- uclass operations
  reset   - Perform RESET of the CPU
  run     - run commands in an environment variable
  sata    - SATA sub-system
  save    - save file to a filesystem
  saveenv - save environment variables to persistent storage
  scsi    - SCSI sub-system
  scsiboot- boot from SCSI device
  setenv  - set environment variables
  sf      - SPI flash sub-system
  showvar - print local hushshell variables
  size    - determine a file's size
  sleep   - delay execution for some time
  source  - run script from memory
  sspi    - SPI utility command
  switch  - Switch Access commands
  sysboot - command to get and boot from syslinux files
  test    - minimal test like /bin/sh
  tftpboot- boot image via network using TFTP protocol
  time    - run commands and summarize execution time
  true    - do nothing, successfully
  tsen    - tsen - Display the SoC temperature.

  unzip   - unzip a memory region
  usb     - USB sub-system
  usbboot - boot from USB device
  v0_eth_led_test- v0 eth led test tool
  version - print monitor, compiler and linker version