Using perf-tools in embedded linux
perf-tools is a collection of performance analysis tools based on perf events developed by Brendan Gregg, perf-tools are widely used on linux server and can ...
perf-tools is a collection of performance analysis tools based on perf events developed by Brendan Gregg, perf-tools are widely used on linux server and can ...
Serial console is always an very important tool when doing low level development such as kernel or bootloader, the most commonly used are the USB to serial c...
This is a list of resources I used for expanding my knowledge on U-Boot, kernel and other stuff related embedded system.
Bring board up for the first time, it usually involves debugging with JTAG, in this post I will be using OpenJTAG for mini2440, showing how to load program w...
breakpoint
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
Dynamic debug is a great feature for kernel debugging, kernel must be compiled with CONFIG_DYNAMIC_DEBUG option, if it was enabled, all pr_debug(), dev_dbg()...
The magic SysRq key is a key combination(Alt+SysRq+<cmd>) implemented by linux kernel, it is usually used to get more information for further investiga...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
malloc_debug
Verbose output
In order to find out where the problem is with my script, I often use echo for debugging, print line number with echo ${LINENO}, but it is not a optimium way...
docker-compose
After I uploaded my photos to nextcloud, I realized, nextcloud is probably not a good choice for hosting photos, so this time I try to manage these photos wi...
Previously I deployed a nextcloud container in digitalocean droplet for my note synchronization. This time I want use nextcloud to hold all my documents and ...
As a system engineer, I have to manage various build envrionmets, build all the projects against one Ubuntu version became imposssible, one change for one pr...
Previously I installed HassOS, it works pretty well except the fact that it is a black box for me at some extent, this time, I take a step further and try to...
Install docker on Armbian
This is a quick setup of home assistant with docker compose.
Install required packages ```bash $ sudo apt install docker.io -y $ sudo apt install docker-compose -y $ sudo apt install lighttpd -y
Prepare for build yocto project
Previously I installed HassOS, it works pretty well except the fact that it is a black box for me at some extent, this time, I take a step further and try to...
Various types of smart devices designed for smart home are developed, part of them can be connected to apple HomeKit, or connected to vendor’s ECO-system, th...
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment (Ubuntu 16.04)
Download source code git clone --depth=1 https://github.com/raspberrypi/linux.git
The NAND flash used in mini2440 is from Samsung, the part number is K9F2G08U0C, the meaning of it is defined in Samsung Part Number Decoder, we can get the b...
The way build ramdisk is not an option for me, load both uImage and ramdisk with U-Boot seems not a good way either, and as uImage is a legacy format, there ...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
MINI2440 has two SDRAM chips on board, different version have different chipset, my SDRAM is EM63A165TS-6G from EtronTech, the pin and timing is compatible w...
U-Boot is a universal bootloader for many architectures, the U-Boot image build against current version (u-boot-2020.10) cannot fit the size of stepping zone...
Bring board up for the first time, it usually involves debugging with JTAG, in this post I will be using OpenJTAG for mini2440, showing how to load program w...
Occasionally, you may want to remove a commit from github/gitlab, for example, I pushed a commit to switched the jekyll theme from minima to minimal mistakes...
Aliases are created through the use of the git config command, and will be saved to $HOME/.gitconfig, use below two commands to see a list of aliases:
This post illustrates how to revert a commit in many branches, say 100 for example, and then push to gerrit server with reviewers added.
I am planning to make android pie runnning on our latest proudct, Continuous Integration team has initialized all the git project, inside citrix, but there i...
Create a tag git tag -a v1.0 -m "milestone: v1" git push --tags
The magic SysRq key is a key combination(Alt+SysRq+<cmd>) implemented by linux kernel, it is usually used to get more information for further investiga...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
Introduction Bootchart is a great tool for performance analysis and visualization of the Linux/Android boot process, it consists of two parts: data collectio...
What is zram Kernel Documentation says it is Compressed RAM based block devices.
dumpsys
perf-tools is a collection of performance analysis tools based on perf events developed by Brendan Gregg, perf-tools are widely used on linux server and can ...
The perf tool has been tested with ingenic T40.
In this post, I’ll show you how to split tools/perf in linux tree into an separate git repository without losing the commit history.
Tools Description avocado Avocado is a next generation testing framework inspired by Autotest ...
Making blink LED working with Arduino on ESP8266 is incredibly easy, with just a few clicks, of course you need to install Arduino IDE first, download the la...
MicroPython is a python implementation aimed to be running on MCUs such as ESP8266/ESP32, stm32 etc, all the ports can be found here, the following will only...
NodeMCU is one of the most popular firmware for ESP8266 and ESP32 wifi SoCs, the firmware is written in c and has Lua interpreter builtin which is based on L...
Serial console is always an very important tool when doing low level development such as kernel or bootloader, the most commonly used are the USB to serial c...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
This is a list of resources I used for expanding my knowledge on U-Boot, kernel and other stuff related embedded system.
Bring board up for the first time, it usually involves debugging with JTAG, in this post I will be using OpenJTAG for mini2440, showing how to load program w...
breakpoint
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
This is a list of resources I used for expanding my knowledge on U-Boot, kernel and other stuff related embedded system.
Dynamic debug is a great feature for kernel debugging, kernel must be compiled with CONFIG_DYNAMIC_DEBUG option, if it was enabled, all pr_debug(), dev_dbg()...
rpi3:/ # dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.14.129-v8+ (fdbai@fdbai-desktop) (gcc version 5.4.0 20160609 (...
Download source code git clone --depth=1 https://github.com/raspberrypi/linux.git
Ch 1 Introduction Ch 2 Technology Background Ch 3 Performance Analysis Ch 4 BCC Ch 5 bpftrace Ch 6 CPUs Ch 7 Memory Ch 8 File Systems Ch 9...
Ch 1 Introduction Ch 2 Methodology Ch 3 Operating Systems Ch 4 Observability Tools Ch 5 Applications Ch 6 CPUs Ch 7 Memory Ch 8 File Systems...
Battery Historian is a tool for inspecting battery related issues, it works on android 5.0 and above, this can also be used for analyzing performance since b...
Introduction Bootchart is a great tool for performance analysis and visualization of the Linux/Android boot process, it consists of two parts: data collectio...
MINI2440 has two SDRAM chips on board, different version have different chipset, my SDRAM is EM63A165TS-6G from EtronTech, the pin and timing is compatible w...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
malloc_debug
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
This is a quick setup of home assistant with docker compose.
Install required packages ```bash $ sudo apt install docker.io -y $ sudo apt install docker-compose -y $ sudo apt install lighttpd -y
Armbian is an operation system based on Debian and Ubuntu, created for ARM-based development boards, it also supports a wide variety of TV boxes, and a lot o...
Wireless Configuration Most smart devices such as speakers, sockets, air conditioners are headless embedded devices, these devices need to be connected to th...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
Debugging devices without serial console is big challenge especially for kernel panic issues, pstore (persistent store) writes kernel messages before system ...
[ 81.890105] CPU: 3 PID: 890 Comm: insmod Tainted: G O 4.19.108-v8+ #1
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
There are many ways to tell which app sends a toast, the most quickest way is to install third-party app such as Toast Source or Toaster, if you don’t want t...
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
dumpsys
I’ve been using Joplin for about 3 months, I love it, than any other note taking apps. Everything works fine until this Tuesday afternoon (around 3:20 PM to ...
I’ve been using vim for a very long time, my vimrc file is based on Amix’s with minor modifications, I think it’s time to move forward embracing excellent pr...
Best of Vim Tips zzapper 16 Years of Vi + 10+ years of Vim and still learning 31Aug18 : Last Update (Now in VIM Help Format :h helptags) ###These Tips are no...
Preserve white spaces In macOS, you need to press⌥ Opt+Space
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
Best of Vim Tips zzapper 16 Years of Vi + 10+ years of Vim and still learning 31Aug18 : Last Update (Now in VIM Help Format :h helptags) ###These Tips are no...
Previously I wrote a post about how to use ftrace via trace-cmd, now here comes a real world example showing how to find who deleted a file in Android system.
what is systrace
Ftrace
Luci is the default web interface for managing openwrt base home routers, integrate luci with the following patch: diff --git a/target/linux/brcm2708/configs...
Wireless Setup
In the previous post, We run openwrt image on Raspberry Pi 3B, but that is only bring openwrt up, it is not a router.
As a system engineer, I have to manage various build envrionmets, build all the projects against one Ubuntu version became imposssible, one change for one pr...
Previously I wrote a post about how to setup TV box as a development machine, I cannot take a box everywhere I go, because it is not that convenient to find ...
Install Gerrit First download the latest version of gerrit from Gerrit Releases site:
This is a long last issue that happens every time I open a new tab or open iTerm, I thought it was a issue of fzf, and it is not, actually, because reinstall...
I’ve done a lot of work on u-boot-2010.09 for MINI2440 to make development process more comfortable, unfortunately, the archived u-boot images were deleted b...
Aliases are created through the use of the git config command, and will be saved to $HOME/.gitconfig, use below two commands to see a list of aliases:
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment (Ubuntu 16.04)
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
malloc_debug
Android adb device was attached to laptop(C1) running Ubuntu, the other computer also with Ubuntu installed, we call it C2.
I need to work on my personal projects outside sometimes, when I need to access to my home computer I use RustDesk, but the key map for Ubuntu and macOS are ...
Various types of smart devices designed for smart home are developed, part of them can be connected to apple HomeKit, or connected to vendor’s ECO-system, th...
Debugging devices without serial console is big challenge especially for kernel panic issues, pstore (persistent store) writes kernel messages before system ...
[ 81.890105] CPU: 3 PID: 890 Comm: insmod Tainted: G O 4.19.108-v8+ #1
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
Prerequisite
Preparation
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
Prerequisite
Preparation
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
Cross compile ltp
Add machine roc-rk3328-cc
Prepare for build yocto project
If you are hosting services at home and want to be accessed from outside, there are couple of options: Cloudflare Tunnel frp nps ngrok
After I uploaded my photos to nextcloud, I realized, nextcloud is probably not a good choice for hosting photos, so this time I try to manage these photos wi...
Previously I deployed a nextcloud container in digitalocean droplet for my note synchronization. This time I want use nextcloud to hold all my documents and ...
Generate Calibre Database
If you are hosting services at home and want to be accessed from outside, there are couple of options: Cloudflare Tunnel frp nps ngrok
I need to work on my personal projects outside sometimes, when I need to access to my home computer I use RustDesk, but the key map for Ubuntu and macOS are ...
Generate Calibre Database
If you are hosting services at home and want to be accessed from outside, there are couple of options: Cloudflare Tunnel frp nps ngrok
I need to work on my personal projects outside sometimes, when I need to access to my home computer I use RustDesk, but the key map for Ubuntu and macOS are ...
Basic ```shell find files created today find . -type f -daystart -ctime -1
I am planning to make android pie runnning on our latest proudct, Continuous Integration team has initialized all the git project, inside citrix, but there i...
Previously I wrote a post about how to use ftrace via trace-cmd, now here comes a real world example showing how to find who deleted a file in Android system.
Ftrace
Introduction Bootchart is a great tool for performance analysis and visualization of the Linux/Android boot process, it consists of two parts: data collectio...
what is systrace
Introduction simpleperf is a native performance profiling tool for Android, like the name indicated, simpleperf is a simplified version of linux-tools-perf w...
I have built a rootfs with buildroot, rootfs is squashfs with overlayfs support for ease of writting configuration files such as dropbear that needs write pe...
Basic ```shell find files created today find . -type f -daystart -ctime -1
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
In the previous post, We run openwrt image on Raspberry Pi 3B, but that is only bring openwrt up, it is not a router.
Checking out OpenWrt code git clone https://www.github.com/openwrt/openwrt
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
Add required packages make menuconfig Network » adblock Network » tcpdump LuCI » 3. Applications » luci-app-adblock
Ubuntu 16.04 Shadowsocks 2.8.2 Python 2.7.15rc1
Add related packages
Ubuntu 16.04 Shadowsocks 2.8.2 Python 2.7.15rc1
Add related packages
Basic Setup
Server side of v2ray
Install Gerrit First download the latest version of gerrit from Gerrit Releases site:
This post illustrates how to revert a commit in many branches, say 100 for example, and then push to gerrit server with reviewers added.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
Setup Build Environment Follow instructions in Running Android Oreo on Raspberry Pi 3B to setup build environment under Ubuntu.
I have built a rootfs with buildroot, rootfs is squashfs with overlayfs support for ease of writting configuration files such as dropbear that needs write pe...
rpi3:/ # dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.14.129-v8+ (fdbai@fdbai-desktop) (gcc version 5.4.0 20160609 (...
While playing Armbian with Phicomm N1 box, I found kernel thread irq/42-0.200908 have very high cpu usage thus cause the load average to around 2, this is a ...
Build kernel with bpf support In order to use bpf, kernel should be at least build with these options: +CONFIG_BPF=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_EVENTS...
Basic Setup
I’ve been using vim for a very long time, my vimrc file is based on Amix’s with minor modifications, I think it’s time to move forward embracing excellent pr...
While playing Armbian with Phicomm N1 box, I found kernel thread irq/42-0.200908 have very high cpu usage thus cause the load average to around 2, this is a ...
The magic SysRq key is a key combination(Alt+SysRq+<cmd>) implemented by linux kernel, it is usually used to get more information for further investiga...
NodeMCU is one of the most popular firmware for ESP8266 and ESP32 wifi SoCs, the firmware is written in c and has Lua interpreter builtin which is based on L...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
Android adb device was attached to laptop(C1) running Ubuntu, the other computer also with Ubuntu installed, we call it C2.
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
Basic Setup
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
This is a long last issue that happens every time I open a new tab or open iTerm, I thought it was a issue of fzf, and it is not, actually, because reinstall...
Basic Setup
Install gitlab with docker-compose
Occasionally, you may want to remove a commit from github/gitlab, for example, I pushed a commit to switched the jekyll theme from minima to minimal mistakes...
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
Bring board up for the first time, it usually involves debugging with JTAG, in this post I will be using OpenJTAG for mini2440, showing how to load program w...
MINI2440 has two SDRAM chips on board, different version have different chipset, my SDRAM is EM63A165TS-6G from EtronTech, the pin and timing is compatible w...
U-Boot is a universal bootloader for many architectures, the U-Boot image build against current version (u-boot-2020.10) cannot fit the size of stepping zone...
Machine id mismatch
This is a list of resources I used for expanding my knowledge on U-Boot, kernel and other stuff related embedded system.
Wireless to UART Bridge
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
I have built a rootfs with buildroot, rootfs is squashfs with overlayfs support for ease of writting configuration files such as dropbear that needs write pe...
reboot
Command
When I am writing plugin for workload automation, I met a issue that execution will fail when I want to enter android recovery mode with: self.target.execute...
I’ve been using Joplin for about 3 months, I love it, than any other note taking apps. Everything works fine until this Tuesday afternoon (around 3:20 PM to ...
Update: I switched to vim+git for note-taking this week because Joplin deleted a lot of my notes by accident, I put this post here for reference only, I m...
Add machine roc-rk3328-cc
Prepare for build yocto project
Add machine roc-rk3328-cc
Prepare for build yocto project
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
There are many ways to create a toolchain, the most easiest way to do this might be with buildroot, always grab the latest long term support release from off...
vmstat
There are many ways to create a toolchain, the most easiest way to do this might be with buildroot, always grab the latest long term support release from off...
Cross compile ltp
Add machine roc-rk3328-cc
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
Preparation sudo apt install -y flex help2man libtool-bin bison libncurses5-dev wget -c http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.26.0.tar...
Prerequisite
Preparation
Prerequisite
Preparation
Prepare Test Environment Ubuntu 22.04
Build perfetto git clone https://github.com/google/perfetto -b v43.1 git clone https://android.googlesource.com/platform/external/perfetto/ && cd per...
Prepare Test Environment Ubuntu 22.04
Build perfetto git clone https://github.com/google/perfetto -b v43.1 git clone https://android.googlesource.com/platform/external/perfetto/ && cd per...
Installation
Installation
Technology News
Technology News
Install Java
Install Java
What is zram Kernel Documentation says it is Compressed RAM based block devices.
Tools Description avocado Avocado is a next generation testing framework inspired by Autotest ...
Ftrace
Introduction simpleperf is a native performance profiling tool for Android, like the name indicated, simpleperf is a simplified version of linux-tools-perf w...
Cool online services
Cool online services
Introduction Bootchart is a great tool for performance analysis and visualization of the Linux/Android boot process, it consists of two parts: data collectio...
Checking out OpenWrt code git clone https://www.github.com/openwrt/openwrt
Wireless Setup
Luci is the default web interface for managing openwrt base home routers, integrate luci with the following patch: diff --git a/target/linux/brcm2708/configs...
Block mount Add CONFIG_PACKAGE_block-mount=y to target/linux/brcm2708/configs/rpi3b_defconfig to get block mount support
Block mount Add CONFIG_PACKAGE_block-mount=y to target/linux/brcm2708/configs/rpi3b_defconfig to get block mount support
Add miniDLNA related packages
Add miniDLNA related packages
Add packages make menuconfig Network » File Transfer » aria2 Network » Download Manager » webui-aria2 LuCI » 3. Applications » luci-app-aria2
Add packages make menuconfig Network » File Transfer » aria2 Network » Download Manager » webui-aria2 LuCI » 3. Applications » luci-app-aria2
Add required packages make menuconfig Network » adblock Network » tcpdump LuCI » 3. Applications » luci-app-adblock
Add related packages
Add related packages
Add related packages
Ubuntu 16.04 Shadowsocks 2.8.2 Python 2.7.15rc1
This post illustrates how to revert a commit in many branches, say 100 for example, and then push to gerrit server with reviewers added.
In this post, I’ll show you how to split tools/perf in linux tree into an separate git repository without losing the commit history.
In this post, I’ll show you how to split tools/perf in linux tree into an separate git repository without losing the commit history.
In this post, I’ll show you how to split tools/perf in linux tree into an separate git repository without losing the commit history.
Installation Doxygen using dot from graphviz to generate graphs, install doxygen and its dependency: sudo apt install doxygen -y sudo apt-get install graphvi...
Installation Doxygen using dot from graphviz to generate graphs, install doxygen and its dependency: sudo apt install doxygen -y sudo apt-get install graphvi...
Installation Doxygen using dot from graphviz to generate graphs, install doxygen and its dependency: sudo apt install doxygen -y sudo apt-get install graphvi...
Installation Doxygen using dot from graphviz to generate graphs, install doxygen and its dependency: sudo apt install doxygen -y sudo apt-get install graphvi...
Installation Doxygen using dot from graphviz to generate graphs, install doxygen and its dependency: sudo apt install doxygen -y sudo apt-get install graphvi...
Previously I wrote a post about how to use ftrace via trace-cmd, now here comes a real world example showing how to find who deleted a file in Android system.
Previously I wrote a post about how to use ftrace via trace-cmd, now here comes a real world example showing how to find who deleted a file in Android system.
Previously I wrote a post about how to use ftrace via trace-cmd, now here comes a real world example showing how to find who deleted a file in Android system.
Setup Build Environment (Ubuntu 16.04)
In order to find out where the problem is with my script, I often use echo for debugging, print line number with echo ${LINENO}, but it is not a optimium way...
Verbose output
Verbose output
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
Workload-automation is a great tool for benchmark automation, it utilizes tools in sdk and android system, including aapt, pm, am etc through devlib, this po...
Android build process takes a very long time, especially on low end computers, after build complete, I wanna transfer the final image to ftp server for furth...
Android build process takes a very long time, especially on low end computers, after build complete, I wanna transfer the final image to ftp server for furth...
Android build process takes a very long time, especially on low end computers, after build complete, I wanna transfer the final image to ftp server for furth...
Android build process takes a very long time, especially on low end computers, after build complete, I wanna transfer the final image to ftp server for furth...
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
cgroups on Android cgroups(control groups for short) was created by Google engineers, and was merged into the mainline at 2008 in version 2.6.24, it was main...
malloc_debug
malloc_debug
malloc_debug
Check if a direcotry exists
rpi3:/ # dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.14.129-v8+ (fdbai@fdbai-desktop) (gcc version 5.4.0 20160609 (...
rpi3:/ # dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.14.129-v8+ (fdbai@fdbai-desktop) (gcc version 5.4.0 20160609 (...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
Linux kernel has many memory related debug tools to help kernel developers find out memory related issues, these tools are included in upstream kernel: Ke...
I think schduling a job with crontab should be easy for me, as I am a veteran linux user, the truth is I don’t know crontab, totally.
I think schduling a job with crontab should be easy for me, as I am a veteran linux user, the truth is I don’t know crontab, totally.
I think schduling a job with crontab should be easy for me, as I am a veteran linux user, the truth is I don’t know crontab, totally.
Build kernel with bpf support In order to use bpf, kernel should be at least build with these options: +CONFIG_BPF=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_EVENTS...
Build kernel with bpf support In order to use bpf, kernel should be at least build with these options: +CONFIG_BPF=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_EVENTS...
Build kernel with bpf support In order to use bpf, kernel should be at least build with these options: +CONFIG_BPF=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_EVENTS...
item/flavor eng user userdebug ro.secure 0 1 1 security.perf_harden ...
item/flavor eng user userdebug ro.secure 0 1 1 security.perf_harden ...
item/flavor eng user userdebug ro.secure 0 1 1 security.perf_harden ...
item/flavor eng user userdebug ro.secure 0 1 1 security.perf_harden ...
scrcpy is an open source project developed by Genymobile, it can be used to display and control of your android devices over adb connection. The following fe...
scrcpy is an open source project developed by Genymobile, it can be used to display and control of your android devices over adb connection. The following fe...
scrcpy is an open source project developed by Genymobile, it can be used to display and control of your android devices over adb connection. The following fe...
After upgrading my computer to Ubuntu 18.04, I wanna remove unused packages, so I do an apt autoremove, unfortunately it failed with below messages: sudo apt...
After upgrading my computer to Ubuntu 18.04, I wanna remove unused packages, so I do an apt autoremove, unfortunately it failed with below messages: sudo apt...
After upgrading my computer to Ubuntu 18.04, I wanna remove unused packages, so I do an apt autoremove, unfortunately it failed with below messages: sudo apt...
No one can guarantee that he never make mistakes while using command line, even an experienced user.
No one can guarantee that he never make mistakes while using command line, even an experienced user.
No one can guarantee that he never make mistakes while using command line, even an experienced user.
I’ve been using vim for a very long time, my vimrc file is based on Amix’s with minor modifications, I think it’s time to move forward embracing excellent pr...
The magic SysRq key is a key combination(Alt+SysRq+<cmd>) implemented by linux kernel, it is usually used to get more information for further investiga...
Dynamic debug is a great feature for kernel debugging, kernel must be compiled with CONFIG_DYNAMIC_DEBUG option, if it was enabled, all pr_debug(), dev_dbg()...
Battery Historian is a tool for inspecting battery related issues, it works on android 5.0 and above, this can also be used for analyzing performance since b...
Battery Historian is a tool for inspecting battery related issues, it works on android 5.0 and above, this can also be used for analyzing performance since b...
Battery Historian is a tool for inspecting battery related issues, it works on android 5.0 and above, this can also be used for analyzing performance since b...
From cpuinfo in procfs, we get a lot information about the cpu on board, how many cores, architecture etc, here is an example output of cpuinfo of RPI 3B+: `...
From cpuinfo in procfs, we get a lot information about the cpu on board, how many cores, architecture etc, here is an example output of cpuinfo of RPI 3B+: `...
There are many ways to tell which app sends a toast, the most quickest way is to install third-party app such as Toast Source or Toaster, if you don’t want t...
Various types of smart devices designed for smart home are developed, part of them can be connected to apple HomeKit, or connected to vendor’s ECO-system, th...
Various types of smart devices designed for smart home are developed, part of them can be connected to apple HomeKit, or connected to vendor’s ECO-system, th...
Various types of smart devices designed for smart home are developed, part of them can be connected to apple HomeKit, or connected to vendor’s ECO-system, th...
Home security is always the most import part for smart home system, in this blog post, I will show you how to turn an old android phone into a webcam, and wi...
Home security is always the most import part for smart home system, in this blog post, I will show you how to turn an old android phone into a webcam, and wi...
Home security is always the most import part for smart home system, in this blog post, I will show you how to turn an old android phone into a webcam, and wi...
Home security is always the most import part for smart home system, in this blog post, I will show you how to turn an old android phone into a webcam, and wi...
Home security is always the most import part for smart home system, in this blog post, I will show you how to turn an old android phone into a webcam, and wi...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
For a very long time, I want to setup an system that can turn on the TV every morning when I get up and play some video files for English learning, I know I ...
Wireless Configuration Most smart devices such as speakers, sockets, air conditioners are headless embedded devices, these devices need to be connected to th...
Wireless Configuration Most smart devices such as speakers, sockets, air conditioners are headless embedded devices, these devices need to be connected to th...
Wireless Configuration Most smart devices such as speakers, sockets, air conditioners are headless embedded devices, these devices need to be connected to th...
Wireless Configuration Most smart devices such as speakers, sockets, air conditioners are headless embedded devices, these devices need to be connected to th...
It is well known that, accessing github in China is a torture, cloning a github repository takes too much time, especially for big project like linux kernel,...
It is well known that, accessing github in China is a torture, cloning a github repository takes too much time, especially for big project like linux kernel,...
It is well known that, accessing github in China is a torture, cloning a github repository takes too much time, especially for big project like linux kernel,...
It is well known that, accessing github in China is a torture, cloning a github repository takes too much time, especially for big project like linux kernel,...
Armbian is an operation system based on Debian and Ubuntu, created for ARM-based development boards, it also supports a wide variety of TV boxes, and a lot o...
Armbian is an operation system based on Debian and Ubuntu, created for ARM-based development boards, it also supports a wide variety of TV boxes, and a lot o...
Armbian is an operation system based on Debian and Ubuntu, created for ARM-based development boards, it also supports a wide variety of TV boxes, and a lot o...
Visual images are always more attractive than pure numbers or statistics, that’s why WordCloud are so popular, I am considering look for a new job, and gathe...
Visual images are always more attractive than pure numbers or statistics, that’s why WordCloud are so popular, I am considering look for a new job, and gathe...
Disable subtitles in VLC by default Go to VLC ➜ Preferences ➜ Subtitles / OSD, enter none in the text box labeled Preferred subtitle language, this works fo...
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
In Kernel memory debugging techniques, we talked about using script decode_stacktrace.sh to translate addresses to lines, or if only interested in one entry ...
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Syzkaller is a coverage-guided fuzzer for Linux kernel, it was mainly developed by Dmitry Vyukov, and with many other developers, it’s under active developme...
Basic Setup
Basic Setup
Basic Setup
Basic Setup
Basic Setup
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
All-zero address shown when do cat /proc/modules echo 0 > /proc/sys/kernel/kptr_restrict # or with sysctl sysctl kernel.kptr_restrict=0
Preserve white spaces In macOS, you need to press⌥ Opt+Space
Install required packages ```bash $ sudo apt install docker.io -y $ sudo apt install docker-compose -y $ sudo apt install lighttpd -y
Install required packages ```bash $ sudo apt install docker.io -y $ sudo apt install docker-compose -y $ sudo apt install lighttpd -y
[ 81.890105] CPU: 3 PID: 890 Comm: insmod Tainted: G O 4.19.108-v8+ #1
While playing Armbian with Phicomm N1 box, I found kernel thread irq/42-0.200908 have very high cpu usage thus cause the load average to around 2, this is a ...
While playing Armbian with Phicomm N1 box, I found kernel thread irq/42-0.200908 have very high cpu usage thus cause the load average to around 2, this is a ...
Debugging devices without serial console is big challenge especially for kernel panic issues, pstore (persistent store) writes kernel messages before system ...
Debugging devices without serial console is big challenge especially for kernel panic issues, pstore (persistent store) writes kernel messages before system ...
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
I need to work while travelling in the following couple of months, so I need all my devices connected to the internet, N1 has a Ethernet port and wireless mo...
From time to time, I need to transfer files from computer to my android phone, install apk for example, I can use the app store if the app can be found there...
From time to time, I need to transfer files from computer to my android phone, install apk for example, I can use the app store if the app can be found there...
Ch 1 Introduction Ch 2 Methodology Ch 3 Operating Systems Ch 4 Observability Tools Ch 5 Applications Ch 6 CPUs Ch 7 Memory Ch 8 File Systems...
Ch 1 Introduction Ch 2 Technology Background Ch 3 Performance Analysis Ch 4 BCC Ch 5 bpftrace Ch 6 CPUs Ch 7 Memory Ch 8 File Systems Ch 9...
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
Segment fault are common issues for native developers, it is caused by accessing memory location that is not allowed to, I’m gonna list the possible reasons ...
This is a quick setup of home assistant with docker compose.
Previously I wrote a post about how to setup TV box as a development machine, I cannot take a box everywhere I go, because it is not that convenient to find ...
Previously I wrote a post about how to setup TV box as a development machine, I cannot take a box everywhere I go, because it is not that convenient to find ...
Six years ago I use synergy (ver1.5.1) for sharing keyboard and mouse with other computers, which is great, then it became a commercial software, after upgra...
Six years ago I use synergy (ver1.5.1) for sharing keyboard and mouse with other computers, which is great, then it became a commercial software, after upgra...
Jellyfin is an open source local media management system, it is descended from Emby which is now goes commercial, it can fetch metadata from various website ...
Jellyfin is an open source local media management system, it is descended from Emby which is now goes commercial, it can fetch metadata from various website ...
Install docker on Armbian
Install docker on Armbian
Previously I installed HassOS, it works pretty well except the fact that it is a black box for me at some extent, this time, I take a step further and try to...
Previously I installed HassOS, it works pretty well except the fact that it is a black box for me at some extent, this time, I take a step further and try to...
Bring board up for the first time, it usually involves debugging with JTAG, in this post I will be using OpenJTAG for mini2440, showing how to load program w...
U-Boot is a universal bootloader for many architectures, the U-Boot image build against current version (u-boot-2020.10) cannot fit the size of stepping zone...
Mnemonic Instruction Action ADC Add with carry Rd: = Rn + Op2 + Carry ADD ...
Mnemonic Instruction Action ADC Add with carry Rd: = Rn + Op2 + Carry ADD ...
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
I have several Raspberry Pis in hand, they are all not being used for a very long time because of the poor performance of the MMC controller, but it doesn’t ...
There are lot of IDEs out there can build apps or libraries for you, but this is not the way I like, I prefer the command line, today I am gonna show you how...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
Poring Linux kernel to board is much easier than the age of version 2.6, I want to make an update my school projects, part of this procedure involves the ker...
Machine id mismatch
Machine id mismatch
The way build ramdisk is not an option for me, load both uImage and ramdisk with U-Boot seems not a good way either, and as uImage is a legacy format, there ...
The way build ramdisk is not an option for me, load both uImage and ramdisk with U-Boot seems not a good way either, and as uImage is a legacy format, there ...
I’ve done a lot of work on u-boot-2010.09 for MINI2440 to make development process more comfortable, unfortunately, the archived u-boot images were deleted b...
I’ve done a lot of work on u-boot-2010.09 for MINI2440 to make development process more comfortable, unfortunately, the archived u-boot images were deleted b...
Wireless to UART Bridge
The NAND flash used in mini2440 is from Samsung, the part number is K9F2G08U0C, the meaning of it is defined in Samsung Part Number Decoder, we can get the b...
The NAND flash used in mini2440 is from Samsung, the part number is K9F2G08U0C, the meaning of it is defined in Samsung Part Number Decoder, we can get the b...
Serial console is always an very important tool when doing low level development such as kernel or bootloader, the most commonly used are the USB to serial c...
Serial console is always an very important tool when doing low level development such as kernel or bootloader, the most commonly used are the USB to serial c...
IoT gains too much attention these years, there are various RTOS are claimed to IoT OS, Zephyr OS is one of them, it is originated from WindRiver and is a pr...
IoT gains too much attention these years, there are various RTOS are claimed to IoT OS, Zephyr OS is one of them, it is originated from WindRiver and is a pr...
MicroPython is a python implementation aimed to be running on MCUs such as ESP8266/ESP32, stm32 etc, all the ports can be found here, the following will only...
Making blink LED working with Arduino on ESP8266 is incredibly easy, with just a few clicks, of course you need to install Arduino IDE first, download the la...
Making blink LED working with Arduino on ESP8266 is incredibly easy, with just a few clicks, of course you need to install Arduino IDE first, download the la...
Recently I was debugging a system hang problem on arm board, I reproduced this issue once, and noticed when this occurred, the interrupts on can interface is...
Android operation system is becoming more and more complicated as time goes by, some system issues are hard to diagnostic, and not easy to reproduce, Android...
Android operation system is becoming more and more complicated as time goes by, some system issues are hard to diagnostic, and not easy to reproduce, Android...
Prerequsite
Prerequsite
Prerequsite
Prerequsite
reboot
Command
When I am writing plugin for workload automation, I met a issue that execution will fail when I want to enter android recovery mode with: self.target.execute...
Update: I switched to vim+git for note-taking this week because Joplin deleted a lot of my notes by accident, I put this post here for reference only, I m...
I use Syncthing to sync my notes from work desktop compute to vps server, so I can continue my work at home, syncthing is pretty easy to setup and use.
I use Syncthing to sync my notes from work desktop compute to vps server, so I can continue my work at home, syncthing is pretty easy to setup and use.
As a system engineer, I have to manage various build envrionmets, build all the projects against one Ubuntu version became imposssible, one change for one pr...
As a system engineer, I have to manage various build envrionmets, build all the projects against one Ubuntu version became imposssible, one change for one pr...
Jenkins is one of the most popular continuous integration solution, I use it both for work and personal project, it provides webUI interface, to save to conf...
Jenkins is one of the most popular continuous integration solution, I use it both for work and personal project, it provides webUI interface, to save to conf...
Previously I deployed a nextcloud container in digitalocean droplet for my note synchronization. This time I want use nextcloud to hold all my documents and ...
OpenWrt using its own format of patch file which can be created with quilt. Before creating patches for OpenWrt, we need to create a configuration file for q...
OpenWrt using its own format of patch file which can be created with quilt. Before creating patches for OpenWrt, we need to create a configuration file for q...
Previously, I use cowtransfer to share files with our partners, thanks to cowtransfer-uploader, it is very convenient for automation, this changed recently, ...
After I uploaded my photos to nextcloud, I realized, nextcloud is probably not a good choice for hosting photos, so this time I try to manage these photos wi...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
For making a real world product, robustness is very important, some process may crash occasionally, this is possible even if the system is passed all kinds o...
cowTransfer-uploader is a command line tool that can be used as part of automation, here is the example of how to get download URL and secret code: ```sh mem...
cowTransfer-uploader is a command line tool that can be used as part of automation, here is the example of how to get download URL and secret code: ```sh mem...
This issue happens when I trying to using some app, and cannot failed to install it’s dependancies, commplaining about python3, so I uninstalled python3, apt...
This issue happens when I trying to using some app, and cannot failed to install it’s dependancies, commplaining about python3, so I uninstalled python3, apt...
If you are hosting services at home and want to be accessed from outside, there are couple of options: Cloudflare Tunnel frp nps ngrok
If you are hosting services at home and want to be accessed from outside, there are couple of options: Cloudflare Tunnel frp nps ngrok
I have built a rootfs with buildroot, rootfs is squashfs with overlayfs support for ease of writting configuration files such as dropbear that needs write pe...
I have built a rootfs with buildroot, rootfs is squashfs with overlayfs support for ease of writting configuration files such as dropbear that needs write pe...
Generate Calibre Database
Generate Calibre Database
Generate Calibre Database
vmstat
Build libtcmalloc
Build libtcmalloc
Cross compile ltp
Cross compile ltp
Cross compile ltp
Preparation sudo apt install -y flex help2man libtool-bin bison libncurses5-dev wget -c http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.26.0.tar...
Build infer ```sh sudo apt install libstdc++-12-dev linux-libc-dev:i386 gcc-multilib sudo ln -sf /usr/include/x86_64-linux-gnu/asm /usr/include/asm git clone...
Build infer ```sh sudo apt install libstdc++-12-dev linux-libc-dev:i386 gcc-multilib sudo ln -sf /usr/include/x86_64-linux-gnu/asm /usr/include/asm git clone...
Install CodeChecker and dependencies
Install CodeChecker and dependencies
Install CodeChecker and dependencies
Flutter SDK git clone https://github.com/sony/flutter-elinux.git sudo mv flutter-elinux /opt/ export PATH=$PATH:/opt/flutter-elinux/bin:/opt/flutter-elinux/f...
Flutter SDK git clone https://github.com/sony/flutter-elinux.git sudo mv flutter-elinux /opt/ export PATH=$PATH:/opt/flutter-elinux/bin:/opt/flutter-elinux/f...
Flutter SDK git clone https://github.com/sony/flutter-elinux.git sudo mv flutter-elinux /opt/ export PATH=$PATH:/opt/flutter-elinux/bin:/opt/flutter-elinux/f...
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
For a suspected memory leak issue on a legacy device running OpenWrt build with gcc-8, I need a toolchain with leak sanitizer support, so I try to generate o...
Android adb device was attached to laptop(C1) running Ubuntu, the other computer also with Ubuntu installed, we call it C2.
Android adb device was attached to laptop(C1) running Ubuntu, the other computer also with Ubuntu installed, we call it C2.
Android adb device was attached to laptop(C1) running Ubuntu, the other computer also with Ubuntu installed, we call it C2.
docker-compose
docker-compose