root@edison:~# systemctl -all
UNIT LOAD ACTIVE SUB DESCRIPTION
boot.automount loaded active waiting boot.automount
factory.automount loaded active waiting factory.automount
home.automount loaded active running home.automount
media-sdcard.automount loaded inactive dead Automount for SDCard
dev-mmcblk0.device loaded active plugged /dev/mmcblk0
dev-mmcblk0boot0.device loaded active plugged /dev/mmcblk0boot0
dev-mmcblk0boot1.device loaded active plugged /dev/mmcblk0boot1
dev-mmcblk0p1.device loaded active plugged /dev/mmcblk0p1
dev-mmcblk0p10.device loaded active plugged /dev/mmcblk0p10
dev-mmcblk0p2.device loaded active plugged /dev/mmcblk0p2
dev-mmcblk0p3.device loaded active plugged /dev/mmcblk0p3
dev-mmcblk0p4.device loaded active plugged /dev/mmcblk0p4
dev-mmcblk0p5.device loaded active plugged /dev/mmcblk0p5
dev-mmcblk0p6.device loaded active plugged /dev/mmcblk0p6
dev-mmcblk0p7.device loaded active plugged /dev/mmcblk0p7
dev-mmcblk0p8.device loaded active plugged /dev/mmcblk0p8
dev-mmcblk0p9.device loaded active plugged /dev/mmcblk0p9
dev-mmcblk1.device loaded active plugged /dev/mmcblk1
dev-mmcblk1p1.device loaded inactive dead dev-mmcblk1p1.device
dev-rfkill.device loaded active plugged /dev/rfkill
dev-sda.device loaded active plugged USB_Flash_Drive
dev-ttyS1.device loaded active plugged Merrifield Serial IO HSUART Cont
dev-ttyS2.device loaded active plugged Merrifield Serial IO HSUART Cont
dev-ttyS3.device loaded active plugged /dev/ttyS3
sys-module-configfs.device loaded active plugged /sys/module/configfs
sys-subsystem-bluetooth-devices-hci0.device
loaded active plugged /sys/subsystem/bluetooth/devices
sys-subsystem-net-devices-enp0s17u1u1.device
loaded active plugged SMSC9512/9514 Fast Ethernet Adap
sys-subsystem-net-devices-sit0.device loaded active plugged /sys/subsystem/net/devices/sit0
sys-subsystem-net-devices-wlan0.device loaded active plugged Merrifield SD/SDIO/eMMC Controll
-.mount loaded active mounted Root Mount
boot.mount loaded inactive dead /boot
dev-hugepages.mount loaded active mounted Huge Pages File System
dev-mqueue.mount loaded active mounted POSIX Message Queue File System
factory.mount loaded inactive dead /factory
home.mount loaded active mounted /home
media-sdcard.mount loaded inactive dead Mount for SDCard
run-user-0.mount loaded active mounted /run/user/0
sys-fs-fuse-connections.mount loaded inactive dead FUSE Control File System
sys-kernel-config.mount loaded active mounted Kernel Configuration File System
sys-kernel-debug.mount loaded active mounted Kernel Debug File System
tmp.mount loaded active mounted Temporary Directory (/tmp)
var-lib-machines.mount loaded inactive dead Virtual Machine and Container St
var-volatile.mount loaded active mounted /var/volatile
systemd-ask-password-console.path loaded active waiting Dispatch Password Requests to Co
systemd-ask-password-wall.path loaded active waiting Forward Password Requests to Wal
init.scope loaded active running System and Service Manager
session-c1.scope loaded active running Session c1 of user root
session-c2.scope loaded active running Session c2 of user root
session-c3.scope loaded active running Session c3 of user root
session-c4.scope loaded active running Session c4 of user root
ap-mode-toggle.service loaded inactive dead Start or stop WiFI AP Mode in Ed
● apt-daily.service loaded failed failed Daily apt download activities
● auditd.service not-found inactive dead auditd.service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
● battery-voltage.service loaded failed failed Battery Voltage daemon
blink-led.service loaded active running Edison Arduino board LED Blinker
busybox-klogd.service loaded active running Kernel Logging Service
busybox-syslog.service loaded active running System Logging Service
cleanjournal.service loaded inactive dead Cleanjournal service
connman.service loaded active running Connection service
crashlog.service loaded inactive dead Crashlog service
dbus.service loaded active running D-Bus System Message Bus
● display-manager.service not-found inactive dead display-manager.service
edison_config.service loaded inactive dead The Edison status and configurat
emergency.service loaded inactive dead Emergency Shell
getty@tty1.service loaded active running Getty on tty1
initrd-cleanup.service loaded inactive dead Cleaning Up and Shutting Down Da
initrd-parse-etc.service loaded inactive dead Reload Configuration from the Re
initrd-switch-root.service loaded inactive dead Switch Root
initrd-udevadm-cleanup-db.service loaded inactive dead Cleanup udevd DB
kmod-static-nodes.service loaded inactive dead Create list of required static d
ldconfig.service loaded inactive dead Rebuild Dynamic Linker Cache
mcu_fw_loader.service loaded inactive dead Daemon to load edison mcu app bi
● mdns.service not-found inactive dead mdns.service
mosquitto.service loaded inactive dead Mosquitto - lightweight server i
ofono.service loaded active running Telephony service
● plymouth-quit-wait.service not-found inactive dead plymouth-quit-wait.service
● plymouth-start.service not-found inactive dead plymouth-start.service
pwr-button-handler.service loaded inactive dead Edison PWR button handler
rc-local.service loaded inactive dead /etc/rc.local Compatibility
rescue.service loaded inactive dead Rescue Shell
resize-rootfs.service loaded inactive dead Increases rootfs image size to f
run-postinsts.service loaded inactive dead Run pending postinsts
serial-getty@ttyS2.service loaded active running Serial Getty on ttyS2
sketch-check.service loaded inactive dead Edison sketch check service
● sshd.service not-found inactive dead sshd.service
sshdgenkeys.service loaded active exited OpenSSH Key Generation
systemd-ask-password-console.service loaded inactive dead Dispatch Password Requests to Co
systemd-ask-password-wall.service loaded inactive dead Forward Password Requests to Wal
systemd-firstboot.service loaded inactive dead First Boot Wizard
systemd-fsck-root.service loaded inactive dead File System Check on Root Device
systemd-fsck@dev-mmcblk0p9.service loaded inactive dead File System Check on /dev/mmcblk
systemd-hwdb-update.service loaded inactive dead Rebuild Hardware Database
systemd-initctl.service loaded inactive dead /dev/initctl Compatibility Daemo
systemd-journal-catalog-update.service loaded inactive dead Rebuild Journal Catalog
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Stor
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-machine-id-commit.service loaded inactive dead Commit a transient machine-id on
systemd-modules-load.service loaded inactive dead Load Kernel Modules
systemd-networkd-wait-online.service loaded active exited Wait for Network to be Configure
systemd-networkd.service loaded active running Network Service
systemd-quotacheck.service loaded inactive dead File System Quota Check
systemd-random-seed.service loaded active exited Load/Save Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Sys
systemd-resolved.service loaded inactive dead Network Name Resolution
systemd-rfkill.service loaded inactive dead Load/Save RF Kill Switch Status
systemd-sysctl.service loaded active exited Apply Kernel Variables
systemd-sysusers.service loaded inactive dead Create System Users
systemd-timesyncd.service loaded active running Network Time Synchronization
systemd-tmpfiles-clean.service loaded inactive dead Cleanup of Temporary Directories
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /d
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Direct
systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-update-done.service loaded inactive dead Update is Completed
systemd-update-utmp-runlevel.service loaded inactive dead Update UTMP about System Runleve
systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Sh
systemd-user-sessions.service loaded active exited Permit User Sessions
systemd-vconsole-setup.service loaded inactive dead Setup Virtual Console
user@0.service loaded active running User Manager for UID 0
var-volatile-cache.service loaded inactive dead Bind mount volatile /var/cache
var-volatile-lib.service loaded inactive dead Bind mount volatile /var/lib
var-volatile-spool.service loaded inactive dead Bind mount volatile /var/spool
var-volatile-srv.service loaded inactive dead Bind mount volatile /srv
watchdog-sample.service loaded active running Watchdog sample daemon
wpa_supplicant.service loaded active running WPA supplicant
-.slice loaded active active Root Slice
system-getty.slice loaded active active system-getty.slice
system-serial\x2dgetty.slice loaded active active system-serial\x2dgetty.slice
system-sshd.slice loaded active active system-sshd.slice
system-systemd\x2dfsck.slice loaded active active system-systemd\x2dfsck.slice
system.slice loaded active active System Slice
user-0.slice loaded active active User Slice of root
user.slice loaded active active User and Session Slice
avahi-daemon.socket loaded active running Avahi mDNS/DNS-SD Stack Activati
dbus.socket loaded active running D-Bus System Message Bus Socket
sshd.socket loaded active listening sshd.socket
syslog.socket loaded active running Syslog Socket
systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named
systemd-journald-audit.socket loaded active running Journal Audit Socket
systemd-journald-dev-log.socket loaded active running Journal Socket (/dev/log)
systemd-journald.socket loaded active running Journal Socket
systemd-networkd.socket loaded active running Network Service Netlink Socket
systemd-rfkill.socket loaded active listening Load/Save RF Kill Switch Status
systemd-udevd-control.socket loaded active running udev Control Socket
systemd-udevd-kernel.socket loaded active running udev Kernel Socket
basic.target loaded active active Basic System
bluetooth.target loaded active active Bluetooth
● cryptsetup.target not-found inactive dead cryptsetup.target
emergency.target loaded inactive dead Emergency Mode
getty-pre.target loaded inactive dead Login Prompts (Pre)
getty.target loaded active active Login Prompts
graphical.target loaded inactive dead Graphical Interface
initrd-fs.target loaded inactive dead Initrd File Systems
initrd-root-device.target loaded inactive dead Initrd Root Device
initrd-root-fs.target loaded inactive dead Initrd Root File System
initrd-switch-root.target loaded inactive dead Switch Root
initrd.target loaded inactive dead Initrd Default Target
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
machines.target loaded active active Containers
multi-user.target loaded active active Multi-User System
network-online.target loaded active active Network is Online
network-pre.target loaded inactive dead Network (Pre)
network.target loaded active active Network
nss-lookup.target loaded active active Host and Network Name Lookups
nss-user-lookup.target loaded inactive dead User and Group Name Lookups
paths.target loaded active active Paths
remote-fs-pre.target loaded inactive dead Remote File Systems (Pre)
remote-fs.target loaded active active Remote File Systems
rescue.target loaded inactive dead Rescue Mode
shutdown.target loaded inactive dead Shutdown
slices.target loaded active active Slices
sockets.target loaded active active Sockets
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
● syslog.target not-found inactive dead syslog.target
time-sync.target loaded active active System Time Synchronized
timers.target loaded active active Timers
umount.target loaded inactive dead Unmount All Filesystems
apt-daily.timer loaded active waiting Daily apt download activities
systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Direc
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
253 loaded units listed.
sshd
starts automatically and allows login with the root account without password
sshd
) or bluetooth (rfcomm
) is insecure.systemctl start blink-led
starts the blinking LED.
fw_setenv / fw_printenv
allow accessing U-Boot variables just like setenv / printenv
from the U-Boot console do.
root@edison:~# fw_printenv
audio_codec_name=audio_codec="dummy"
boot_edsboot=if env exists cpio ; then zboot 0x100000 0 0x3000000 0x1000000 ; else zboot 0x100000 ; fi ;
boot_target_cmd=run do_flash_os;run do_probe_dfu;run do_compute_target;run mmc-bootargs;run load_kernel;zboot ${loadaddr}
bootargs=quiet debugshell=10 tty1 console=ttyS2,115200n8 root=/dev/sda rootfstype=ext4 systemd.unit=multi-user.target hardware_id=00
bootargs_console=console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8,keep
bootargs_debug=loglevel=4 acpi=on
bootargs_edsboot=tty1 console=ttyS2,115200n8 root=/dev/mmcblk1 rootfstype=ext4 systemd.unit=multi-user.target hardware_id=00
bootargs_ethconfig=cdc
bootargs_target=multi-user
bootargs_usbboot=debugshell=10 tty1 console=ttyS2,115200n8 root=/dev/sda rootfstype=ext4 systemd.unit=multi-user.target hardware_id=00
bootcmd=echo "Target:${target_name}"; run do_partition; run do_handle_bootargs_mode;
bootdelay=1
dfu_alt_info=ifwi00 raw 0 8192 mmcpart 1;ifwib00 raw 0 8192 mmcpart 2;u-boot0 part 0 1;u-boot-env0 part 0 2;u-boot1 part 0 3;u-boot-env1 part 0 4;boot part 0 7;rootfs part 0 8;update part 0 9;home part 0 10;bzImage-initramfs-edison.bin fat 0 7;initrd fat 0 7
dfu_alt_info_ram=kernel ram ${loadaddr} 0x800000
dfu_alt_info_reset=reset ram 0x0 0x0
dfu_to_sec=3
do_audio_support=setenv audio_support platform_mrfld_audio.${audio_codec_name}
do_boot=run boot_target_cmd;
do_bootargs_rootfs=setenv bootargs_rootfs root=/dev/mmcblk0p8 rootfstype=ext4
do_compute_target=if itest.b ${first_install_retry} -gt ${first_install_max_retries} || itest.b ${ota_update_retry} -gt ${ota_update_max_retries}; then echo "Switch to Rescue target"; setenv bootargs_target rescue; saveenv; fi
do_dfu_alt_info_ifwi=setenv dfu_alt_info "ifwi${hardware_id} raw 0 8192 mmcpart 1;ifwib${hardware_id} raw 0 8192 mmcpart 2"
do_dfu_alt_info_mmc=setenv dfu_alt_info "ifwi${hardware_id} raw 0 8192 mmcpart 1;ifwib${hardware_id} raw 0 8192 mmcpart 2;u-boot0 part 0 1;u-boot-env0 part 0 2;u-boot1 part 0 3;u-boot-env1 part 0 4;boot part 0 7;rootfs part 0 8;update part 0 9;home part 0 10;bzImage-initramfs-edison.bin fat 0 7;initrd fat 0 7"
do_dnx=setenv dfu_alt_info ${dfu_alt_info_ram};dfu 0 ram 0 ram;run bootcmd
do_fallback=echo "Unknown boot mode: $bootargs_mode"; env delete -f bootargs_mode; saveenv; echo "Resetting to default boot mode and reboot..."; reset;
do_flash=run do_force_flash_os;
do_flash_ifwi=run do_dfu_alt_info_ifwi ; dfu 0 mmc 0
do_flash_os=if itest.b ${do_flash_os_done} -eq 1 ; then echo "Flashing already done..." ; else run do_force_flash_os; fi
do_flash_os_done=1
do_flashall=run do_partition;run do_flash_ifwi;run do_flash_os
do_force_flash_os=run do_dfu_alt_info_mmc ; sleep 1 ; setenv do_flash_os_done 1 ; saveenv ; dfu 0 mmc 0
do_force_partition=echo "Partitioning using GPT"; gpt write mmc 0 ${partitions} ; mmc rescan; setenv do_partition_done 1 ; saveenv
do_handle_bootargs_mode=run do_preprocess_bootargs_mode; if itest.s $bootargs_mode == "usb" ; then run usbboot; fi; if itest.s $bootargs_mode == "boot" ; then run do_boot; fi; if itest.s $bootargs_mode == "flash"; then run do_flash; fi; run do_fallback; exit;
do_load_ota_scr=if fatload mmc 0:9 $ota_script_addr ota_update.scr ; then setenv ota_status 0 ; else setenv ota_status 1 ; fi
do_ota=run do_ota_init ; run do_load_ota_scr ; run do_source_ota_scr ; run do_ota_clean
do_ota_clean=saveenv ; reset
do_ota_init=setenv ota_status 1 ; env delete -f bootargs_mode
do_partition=if itest.b ${do_partition_done} -eq 1; then echo "Partitioning already done..."; else run do_force_partition ; fi
do_partition_done=1
do_preprocess_bootargs_mode=if env exists bootargs_mode ; then ; else setenv bootargs_mode "boot" ;fi;
do_probe_dfu=run do_dfu_alt_info_mmc ; dfu 0 mmc 0 ${dfu_to_sec}
do_source_ota_scr=if test $ota_status -eq 0 ; then if source $ota_script_addr ; then setenv ota_status 0 ; else setenv ota_status 2 ; fi ; fi
edsboot=setenv bootargs ${acpi} ${bootargs_edsboot}; run load_edsboot; run boot_edsboot
fdtcontroladdr=3d45ac60
first_install_max_retries=3
first_install_retry=0
hardware_id=00
init_dfu=run do_dfu_alt_info_mmc ; saveenv
load_edsboot=load mmc 0:9 0x100000 bzImage-initramfs
load_kernel=fatload mmc 0:7 ${loadaddr} bzImage-initramfs-edison.bin
load_usbboot=load mmc 0:9 0x100000 bzImage-initramfs-usb ; if env exists cpio ; then print cpio ; load mmc 0:9 0x3000000 acpi-tables.cpio ; fi ;
loadaddr=0x100000
mmc-bootargs=run do_bootargs_rootfs; run do_audio_support; setenv bootargs ${bootargs_rootfs} ${bootargs_console} ${bootargs_debug} g_multi.ethernet_config=${bootargs_ethconfig} systemd.unit=${bootargs_target}.target hardware_id=${hardware_id} g_multi.iSerialNumber=${serial#} g_multi.dev_addr=${usb0addr} ${audio_support}
ota_done=0
ota_script_addr=0x100000
ota_update_max_retries=3
ota_update_retry=0
partitions=uuid_disk=${uuid_disk};name=u-boot0,start=1MiB,size=2MiB,uuid=${uuid_uboot0};name=u-boot-env0,size=1MiB,uuid=${uuid_uboot_env0};name=u-boot1,size=2MiB,uuid=${uuid_uboot1};name=u-boot-env1,size=1MiB,uuid=${uuid_uboot_env1};name=factory,size=1MiB,uuid=${uuid_factory};name=panic,size=24MiB,uuid=${uuid_panic};name=boot,size=32MiB,uuid=${uuid_boot};name=rootfs,size=1536MiB,uuid=${uuid_rootfs};name=update,size=768MiB,uuid=${uuid_update};name=home,size=-,uuid=${uuid_home};
serial#=edcb9deb6034c78e5649076c2221c51e
target_name=blank
usb0addr=02:00:86:21:c5:1e
usbboot=setenv bootargs ${acpi} ${bootargs_usbboot}; run load_usbboot; run boot_edsboot
uuid_boot=db88503d-34a5-3e41-836d-c757cb682814
uuid_disk=21200400-0804-0146-9dcc-a8c51255994f
uuid_factory=333a128e-d3e3-b94d-92f4-d3ebd9b3224f
uuid_home=f13a0978-b1b5-1a4e-8821-39438e24b627
uuid_panic=f20aa902-1c5d-294a-9177-97a513e3cae4
uuid_rootfs=012b3303-34ac-284d-99b4-34e03a2335f4
uuid_uboot0=d117f98e-6f2c-d04b-a5b2-331a19f91cb2
uuid_uboot1=8a4bb8b4-e304-ae48-8536-aff5c9c495b1
uuid_uboot_env0=25718777-d0ad-7443-9e60-02cb591c9737
uuid_uboot_env1=08992135-13c6-084b-9322-3391ff571e19
uuid_update=faec2ecf-8544-e241-b19d-757e796da607
acpi=quiet
The reboot
command can take an argument <bootargs>
.
This allows you to type reboot usb
and reboot sdhc
, which will perform either usbboot
(boot kernel bzImage-initramfs-usb
on mmcblk0p9
and rootfs from the usb drive sda
) or edsboot
(boot kernel bzImage-initramfs
on mmcblk0p9
and rootfs from the SDHC card mmcblk0
) respectively without the need to interrupt U-Boot from the console.
This way you can reboot from ssh from a remote terminal into the image you want (without console).
Other supported bootargs are boot, ota and flash (unchanged from the factory image).
The kernel is booted with a built-in initramfs
. The init.sh
script that runs with PID = 1 takes the follow parameters:
Parameter | Function |
---|---|
debugshell | Fall back to a busybox prompt after 30 seconds 1) |
debugshell=10 | Fall back to a busybox prompt after 10 seconds |
skiptables | Skip loading ACPI tables 2) |
1) If there is a problem finding your rootfs you will be dropped in the busybox shell inside the initramfs so you can investigate if the file system needs repair, if there is a driver missing etc.
2) If you install the acpi-tables
package into edison-image
you can install manually by running acpi-tables-load
, or you can have systemd
perform the load using systemctl enable acpi-tables-load
. This is useful during ACPI tables development where you want quickly test without building a new kernel.
There exists a pre-installed systemd
service called run-timezone.service
which tries to set up the correct time zone (tool timedatectl
) on behalf of the location service ipapi.co. Please notice that this will not work until a working WAN connection has been established (tool connmanctl
).
The service does not harm, but of course you may disable it manually using systemctl disable run-timezone.service
and call run-timezone
later.
© 2018 Ferry Toth