mirror of
https://github.com/clockworkpi/DevTerm.git
synced 2025-12-12 10:18:49 +01:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
4a83ac2c82
18
.github/workflows/publish-wiki.yml
vendored
Normal file
18
.github/workflows/publish-wiki.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
name: Publish wiki
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
paths:
|
||||||
|
- wiki/**
|
||||||
|
- .github/workflows/publish-wiki.yml
|
||||||
|
concurrency:
|
||||||
|
group: publish-wiki
|
||||||
|
cancel-in-progress: true
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
jobs:
|
||||||
|
publish-wiki:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: Andrew-Chen-Wang/github-wiki-action@v4
|
||||||
20
Bin/devterm_keyboard_flash.tar.gz.readme_first.md
Normal file
20
Bin/devterm_keyboard_flash.tar.gz.readme_first.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Readme
|
||||||
|
|
||||||
|
This tar.gz contains a auto flash tool for quick flashing Arduino IDE compiled bin file to the DevTerm keyboard while the keyboard is plugged in the DevTerm and DevTerm is running some linux system.
|
||||||
|
|
||||||
|
***DO NOT*** confused the bin file in the tar.gz with other devterm.kbd.***.bin files, they are not the same thing.
|
||||||
|
|
||||||
|
So do not use devterm.kbd.***.bin with this flashing tool.
|
||||||
|
|
||||||
|
Here's how you can flash the firmware on DevTerm(A06 or CM4) or a PC running Ubuntu 22.04:
|
||||||
|
|
||||||
|
1. Download the devterm_keyboard_flash.tar.gz file.
|
||||||
|
2. Extract the contents of the archive: `tar zxvf devterm_keyboard_flash.tar.gz`.
|
||||||
|
3. Install the required package using the following command: `sudo apt install -y dfu-util`.
|
||||||
|
4. Navigate to the extracted directory: `cd devterm_keyboard_flash`.
|
||||||
|
5. Execute the flash script with root privileges: `sudo ./flash.sh`.
|
||||||
|
6. If everything goes well, you will see a progress bar indicating the flashing process.
|
||||||
|
7. If any issues occur or the keyboard loses control (which is unlikely), simply reboot DevTerm to resolve it.
|
||||||
|
8. Rest assured that this flash program will not brick your keyboard.
|
||||||
|
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Devterm R01
|
Devterm R01
|
||||||
|
|
||||||
`d1\_twm.tar.bz2` devterm r01 stock os image twm configs
|
`d1_twm.tar.bz2` devterm r01 stock os image twm configs
|
||||||
```
|
```
|
||||||
.
|
.
|
||||||
..
|
..
|
||||||
@ -17,6 +17,11 @@ Devterm R01
|
|||||||
readme
|
readme
|
||||||
```
|
```
|
||||||
|
|
||||||
`tar xpjfv d1\_twm.tar.bz2 -C /home/cpi`
|
`tar xpjfv d1_twm.tar.bz2 -C /home/cpi`
|
||||||
|
|
||||||
|
|
||||||
|
## Expand R01 rootfs partition size
|
||||||
|
```
|
||||||
|
wget https://github.com/clockworkpi/DevTerm/raw/main/Code/R01/expand_devterm_d1_root.sh
|
||||||
|
chmod +x expand_devterm_d1_root.sh
|
||||||
|
sudo ./expand_devterm_d1_root.sh
|
||||||
|
```
|
||||||
|
|||||||
31
Code/R01/expand_devterm_d1_root.sh
Executable file
31
Code/R01/expand_devterm_d1_root.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
printf "${GREEN}Installing dependencies...${NC}\n"
|
||||||
|
|
||||||
|
# Install growpart util
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
sudo apt-get -y install cloud-guest-utils
|
||||||
|
|
||||||
|
printf "${GREEN}Growing partition...${NC}\n"
|
||||||
|
|
||||||
|
# Grow root partition
|
||||||
|
sudo growpart /dev/mmcblk0 4
|
||||||
|
|
||||||
|
printf "${GREEN}Resizing file system...${NC}\n"
|
||||||
|
|
||||||
|
# Resize file system
|
||||||
|
sudo resize2fs /dev/mmcblk0p4
|
||||||
|
|
||||||
|
printf "${GREEN}Cleaning up...${NC}\n"
|
||||||
|
|
||||||
|
# Uninstall growpart package again
|
||||||
|
#sudo apt-get -y remove cloud-guest-utils
|
||||||
|
|
||||||
|
printf "\n${GREEN}Done! 😊 ${NC}\n\n"
|
||||||
|
|
||||||
|
#rm -rf /etc/init.d/expand_devterm_d1_root.sh
|
||||||
|
#unlink /etc/rc3.d/S01expand_devterm_d1_root.sh
|
||||||
|
|
||||||
37
Code/devterm_fan_daemon_cm4/README.md
Normal file
37
Code/devterm_fan_daemon_cm4/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Fan control daemon for devterm cm4(rpi os)
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
**Devterm is pre-installed this package, so devterm cm4 users do not need to repeat the installation steps**
|
||||||
|
|
||||||
|
```
|
||||||
|
wget -O - https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo apt-key add -
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
|
||||||
|
sudo apt update && apt install -y devterm-fan-temp-daemon-cm4
|
||||||
|
```
|
||||||
|
|
||||||
|
## Change the threshold temperature
|
||||||
|
|
||||||
|
Edit `/usr/local/bin/temp_fan_daemon.py`
|
||||||
|
|
||||||
|
line starts with `MAX_TEMP=80`
|
||||||
|
|
||||||
|
For devterm cm4(rpi os) the recommended MAX_TEMP is in range 60-80
|
||||||
|
|
||||||
|
then restart systemd service to take effect
|
||||||
|
|
||||||
|
`sudo systemctl restart devterm-fan-temp-daemon`
|
||||||
|
|
||||||
|
## How to control the fan from GPIO
|
||||||
|
|
||||||
|
``` start the fan
|
||||||
|
sudo gpio mode 17 out
|
||||||
|
sudo gpio write 17 1
|
||||||
|
```
|
||||||
|
|
||||||
|
```stop the fan
|
||||||
|
sudo gpio mode 17 out
|
||||||
|
sudo gpio write 17 0
|
||||||
|
```
|
||||||
|
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=devterm raspberry pi cm4 fan control daemon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/python3 /usr/local/bin/temp_fan_daemon.py
|
||||||
|
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
51
Code/devterm_fan_daemon_cm4/temp_fan_daemon.py
Normal file
51
Code/devterm_fan_daemon_cm4/temp_fan_daemon.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
###devterm raspberry pi fan control daemon
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def isDigit(x):
|
||||||
|
try:
|
||||||
|
float(x)
|
||||||
|
return True
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def measure_temp():
|
||||||
|
temp = os.popen("/usr/bin/vcgencmd measure_temp").readline()
|
||||||
|
temp2 = temp.replace("temp=","")
|
||||||
|
temp3 = temp2.replace("'C","").strip()
|
||||||
|
#print(temp3)
|
||||||
|
if isDigit(temp3):
|
||||||
|
return float(temp3)
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def init_fan_gpio():
|
||||||
|
os.popen("gpio mode 17 out")
|
||||||
|
|
||||||
|
def fan_on():
|
||||||
|
init_fan_gpio()
|
||||||
|
os.popen("gpio write 17 1")
|
||||||
|
|
||||||
|
def fan_off():
|
||||||
|
init_fan_gpio()
|
||||||
|
os.popen("gpio write 17 0")
|
||||||
|
|
||||||
|
|
||||||
|
MAX_TEMP=80
|
||||||
|
|
||||||
|
init_fan_gpio()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
temp = measure_temp()
|
||||||
|
if(temp > MAX_TEMP):
|
||||||
|
fan_on()
|
||||||
|
else:
|
||||||
|
fan_off()
|
||||||
|
|
||||||
|
time.sleep(5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
59
Code/patch/cm3/README.md
Normal file
59
Code/patch/cm3/README.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# How to compile devterm cm3 kernel
|
||||||
|
|
||||||
|
## Clone kernel source code
|
||||||
|
```
|
||||||
|
git clone https://github.com/raspberrypi/linux.git
|
||||||
|
cd linux
|
||||||
|
git checkout remotes/origin/rpi-4.19.y
|
||||||
|
```
|
||||||
|
|
||||||
|
## Get cross compile tools
|
||||||
|
```
|
||||||
|
git clone https://github.com/raspberrypi/tools.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Compiling process
|
||||||
|
```
|
||||||
|
#must use the rpi arm-bcm2708 cross compiler tools
|
||||||
|
|
||||||
|
cd linux
|
||||||
|
git apply devterm-4.19_v0.11.patch #get patch from https://github.com/clockworkpi/DevTerm/tree/main/Code/patch/cm3
|
||||||
|
|
||||||
|
export PATH=/data/github/raspberrypi/tools/arm-bcm2708/arm-linux-gnueabihf/bin/:$PATH ## change the arm-bcm2708 tools location for yourself
|
||||||
|
|
||||||
|
KERNEL=kernel7l make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
|
||||||
|
KERNEL=kernel7l make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j3
|
||||||
|
INSTALL_MOD_PATH=./modules
|
||||||
|
rm -rf $INSTALL_MOD_PATH
|
||||||
|
make modules_install
|
||||||
|
|
||||||
|
rm modules/lib/modules/*/build
|
||||||
|
rm modules/lib/modules/*/source
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## /boot/config.txt
|
||||||
|
|
||||||
|
In config.txt,I renamed kernel7.img to devterm-kernel7.img
|
||||||
|
|
||||||
|
```
|
||||||
|
ignore_lcd=1
|
||||||
|
dtoverlay=vc4-kms-v3d,audio=0,cma-384
|
||||||
|
dtoverlay=devterm-pmu
|
||||||
|
dtoverlay=devterm-panel
|
||||||
|
dtoverlay=devterm-wifi
|
||||||
|
dtoverlay=devterm-bt
|
||||||
|
dtoverlay=devterm-misc
|
||||||
|
gpio=5=op,dh
|
||||||
|
gpio=9=op,dh
|
||||||
|
gpio=10=ip,np
|
||||||
|
gpio=11=op,dh
|
||||||
|
|
||||||
|
enable_uart=1
|
||||||
|
dtparam=spi=on
|
||||||
|
dtoverlay=spi-gpio35-39
|
||||||
|
|
||||||
|
dtparam=audio=on
|
||||||
|
kernel=devterm-kernel7.img
|
||||||
|
```
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
|
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
|
||||||
index 9863b50ad6da..4ec57b4a087f 100644
|
index d96ac08a606e..2f52093b14ce 100644
|
||||||
--- a/arch/arm/boot/dts/overlays/Makefile
|
--- a/arch/arm/boot/dts/overlays/Makefile
|
||||||
+++ b/arch/arm/boot/dts/overlays/Makefile
|
+++ b/arch/arm/boot/dts/overlays/Makefile
|
||||||
@@ -27,6 +27,11 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
@@ -27,6 +27,11 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||||
@ -11,9 +11,9 @@ index 9863b50ad6da..4ec57b4a087f 100644
|
|||||||
+ devterm-panel.dtbo \
|
+ devterm-panel.dtbo \
|
||||||
+ devterm-pmu.dtbo \
|
+ devterm-pmu.dtbo \
|
||||||
+ devterm-wifi.dtbo \
|
+ devterm-wifi.dtbo \
|
||||||
|
chipdip-i2s-master-dac.dtbo \
|
||||||
dht11.dtbo \
|
dht11.dtbo \
|
||||||
dionaudio-loco.dtbo \
|
dionaudio-loco.dtbo \
|
||||||
dionaudio-loco-v2.dtbo \
|
|
||||||
diff --git a/arch/arm/boot/dts/overlays/devterm-bt-overlay.dts b/arch/arm/boot/dts/overlays/devterm-bt-overlay.dts
|
diff --git a/arch/arm/boot/dts/overlays/devterm-bt-overlay.dts b/arch/arm/boot/dts/overlays/devterm-bt-overlay.dts
|
||||||
new file mode 100755
|
new file mode 100755
|
||||||
index 000000000000..4b634fdd3bda
|
index 000000000000..4b634fdd3bda
|
||||||
@ -308,7 +308,7 @@ index 000000000000..3ffc51b8fc2d
|
|||||||
+ __overlay__ {
|
+ __overlay__ {
|
||||||
+ battery: battery@0 {
|
+ battery: battery@0 {
|
||||||
+ compatible = "simple-battery";
|
+ compatible = "simple-battery";
|
||||||
+ constant_charge_current_max_microamp = <2100000>;
|
+ constant-charge-current-max-microamp = <2100000>;
|
||||||
+ voltage-min-design-microvolt = <3300000>;
|
+ voltage-min-design-microvolt = <3300000>;
|
||||||
+ };
|
+ };
|
||||||
+ };
|
+ };
|
||||||
|
|||||||
@ -31,6 +31,10 @@ md5sum ab081eabf24ae501dc3f40a9126b7e5a
|
|||||||
md5sum 49aa472a6e4d81a48e0a1a26436f02c2
|
md5sum 49aa472a6e4d81a48e0a1a26436f02c2
|
||||||
|
|
||||||
|
|
||||||
|
## Images mirror
|
||||||
|
|
||||||
|
* Community-driven download mirror: [http://dl.clockworkpi.io](http://dl.clockworkpi.io)
|
||||||
|
|
||||||
|
|
||||||
After downloading the files, you will need to extract or decompress them. Please keep in mind that MacOS 11.6 or a higher version is required to extract 7z files.
|
After downloading the files, you will need to extract or decompress them. Please keep in mind that MacOS 11.6 or a higher version is required to extract 7z files.
|
||||||
|
|
||||||
|
|||||||
16
wiki/7110-dev-board-note.md
Normal file
16
wiki/7110-dev-board-note.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Upgrade bootloader and firmware
|
||||||
|
|
||||||
|
for os image 69 and later
|
||||||
|
|
||||||
|
https://forum.rvspace.org/t/visionfive-2-debian-image-december-released/1097/43?page=2
|
||||||
|
|
||||||
|
https://github.com/starfive-tech/VisionFive2/releases/ download latest sdcard.img, dd to sd card, then hdmi or serial port wait for the system to start
|
||||||
|
|
||||||
|
## Flash files
|
||||||
|
```
|
||||||
|
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
|
||||||
|
flashcp -v visionfive2_fw_payload.img /dev/mtd1
|
||||||
|
```
|
||||||
|
|
||||||
|
## 7110 full os large mirror address
|
||||||
|
https://debian.starfivetech.com/
|
||||||
59
wiki/Compile-Devterm-CM4-kernel.md
Normal file
59
wiki/Compile-Devterm-CM4-kernel.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# System
|
||||||
|
ubuntu 22.04 gcc8.4.0
|
||||||
|
```
|
||||||
|
sudo apt install gcc-8 gcc-8-aarch64-linux-gnu gcc-8-arm-linux-gnueabihf
|
||||||
|
```
|
||||||
|
|
||||||
|
# Download patch
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
```
|
||||||
|
|
||||||
|
# Download kernel and patch it
|
||||||
|
```
|
||||||
|
git clone https://github.com/raspberrypi/linux
|
||||||
|
cd linux
|
||||||
|
git checkout 3a33f11c48572b9dd0fecac164b3990fc9234da8
|
||||||
|
cp ~/DevTerm/Code/patch/cm4/cm4_kernel_0704.patch .
|
||||||
|
git apply cm4_kernel_0704.patch
|
||||||
|
|
||||||
|
#Strongly recommend to use gcc 8.4.0 as the cross compiler
|
||||||
|
KERNEL=kernel7l make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig
|
||||||
|
KERNEL=kernel7l make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j1
|
||||||
|
INSTALL_MOD_PATH=./modules make modules_install
|
||||||
|
rm modules/lib/modules/*/build
|
||||||
|
rm modules/lib/modules/*/source
|
||||||
|
|
||||||
|
mkdir output
|
||||||
|
mkdir output/boot
|
||||||
|
mkdir output/lib/modules -p
|
||||||
|
mkdir output/boot/overlays
|
||||||
|
|
||||||
|
cp -rf modules/lib/modules/5.10.17-v7l+ output/lib/modules/
|
||||||
|
cp arch/arm/boot/dts/overlays/*.dtbo output/boot/overlays/
|
||||||
|
cp arch/arm/boot/dts/bcm2711-rpi-cm4.dtb output/boot/
|
||||||
|
cp arch/arm/boot/zImage output/boot/kernel7l.img
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
output is the folder contains all kernel stuff
|
||||||
|
|
||||||
|
# config.txt
|
||||||
|
```
|
||||||
|
disable_overscan=1
|
||||||
|
dtparam=audio=on
|
||||||
|
[pi4]
|
||||||
|
dtoverlay=vc4-fkms-v3d
|
||||||
|
max_framebuffers=2
|
||||||
|
|
||||||
|
[all]
|
||||||
|
dtoverlay=dwc2,dr_mode=host
|
||||||
|
dtoverlay=vc4-kms-v3d-pi4,cma-384
|
||||||
|
dtoverlay=devterm-pmu
|
||||||
|
dtoverlay=devterm-panel
|
||||||
|
dtoverlay=devterm-misc
|
||||||
|
dtoverlay=audremap,pins_12_13
|
||||||
|
|
||||||
|
dtparam=spi=on
|
||||||
|
gpio=10=ip,np
|
||||||
|
```
|
||||||
15
wiki/Compile-and-run-devterm-printer.md
Normal file
15
wiki/Compile-and-run-devterm-printer.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# a06 a04
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
sudo systemctl stop devterm-socat devterm-printer
|
||||||
|
|
||||||
|
sudo apt remove devterm-wiringpi-cpi
|
||||||
|
|
||||||
|
cd DevTerm/Code/devterm_wiringpi_cpi/
|
||||||
|
|
||||||
|
sudo ./build
|
||||||
|
cd ~/DevTerm/Code/thermal_printer/
|
||||||
|
sudo apt install -y libfreetype-dev
|
||||||
|
make
|
||||||
|
|
||||||
|
|
||||||
53
wiki/Compile-andriod-kernel-for-cm4.md
Normal file
53
wiki/Compile-andriod-kernel-for-cm4.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# Download kernel source for andriod of rpi4
|
||||||
|
|
||||||
|
**sync-andriod-kernel.sh**
|
||||||
|
```
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BIN_DIR=$HOME/bin
|
||||||
|
REPO_PATH=$BIN_DIR/repo
|
||||||
|
|
||||||
|
if [ ! -d $BIN_DIR ]
|
||||||
|
then
|
||||||
|
mkdir $BIN_DIR
|
||||||
|
add_path_env $BIN_DIR
|
||||||
|
curl https://storage.googleapis.com/git-repo-downloads/repo > $REPO_PATH
|
||||||
|
chmod a+x $REPO_PATH
|
||||||
|
else
|
||||||
|
echo "folder already exits. $BIN_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PATH=$PATH:$BIN_DIR
|
||||||
|
|
||||||
|
cd /data/andriod-kernel
|
||||||
|
repo init -u https://github.com/android-rpi/kernel_manifest -b arpi-5.10
|
||||||
|
repo sync
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Compile
|
||||||
|
```
|
||||||
|
cd /data/andriod-kernel/
|
||||||
|
./build/build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
# Replace files
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo losetup --show -f -P lineage-19.1-20220511-UNOFFICIAL-KonstaKANG-rpi4.img # assume /dev/loop0
|
||||||
|
sudo mount /dev/loop0p1 /mnt/p1
|
||||||
|
|
||||||
|
# Copy kernel binaries to boot partition
|
||||||
|
cp -rf /data/andriod-kernel/out/arpi-5.10/dist/Image to /mnt/p1
|
||||||
|
cp -rf /data/andriod-kernel/out/arpi-5.10/dist/bcm2711-rpi-*.dtb /mnt/p1
|
||||||
|
cp -rf /data/andriod-kernel/out/arpi-5.10/dist/vc4-kms-v3d-pi4.dtbo to /mnt/p1/overlays/
|
||||||
|
|
||||||
|
sudo umount /mnt/p1
|
||||||
|
sudo losetup -D /dev/loop0
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Reference Url
|
||||||
|
* https://github.com/android-rpi/kernel_manifest
|
||||||
|
* https://github.com/android-rpi/device_arpi_rpi4
|
||||||
64
wiki/Compile-keyboard-bootloader-and-firmware.md
Normal file
64
wiki/Compile-keyboard-bootloader-and-firmware.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Build bin
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/rogerclarkmelbourne/STM32duino-bootloader
|
||||||
|
|
||||||
|
cd STM32duino-bootloader
|
||||||
|
|
||||||
|
make generic-pc13
|
||||||
|
|
||||||
|
```
|
||||||
|
this will produce `bootloader_only_binaries/generic_boot20_pc13.bin`
|
||||||
|
## Convert bootloader to hex format
|
||||||
|
using `srec_cat` to convert
|
||||||
|
windows: http://srecord.sourceforge.net/
|
||||||
|
linux: sudo apt install srecord
|
||||||
|
|
||||||
|
```
|
||||||
|
srec_cat bootloader_only_binaries/generic_boot20_pc13.bin -Binary -offset 0x08000000 -output bootloader_only_binaries/generic_boot20_pc13.hex -Intel
|
||||||
|
```
|
||||||
|
|
||||||
|
## Next is to use stm32Cube to flash the bootloader
|
||||||
|
* Download the stm32cube programmer
|
||||||
|
[stm32cube programmer](https://www.st.com/en/development-tools/stm32cubeprog.html)
|
||||||
|
|
||||||
|
* Put 1 ON in the back of keyboard
|
||||||
|
* Connect keyboard with a usb-serial convert by fpc, in order of [IO MAP](https://github.com/clockworkpi/DevTerm/wiki/Keyboard-with-FPC-60pin-0.5mm)
|
||||||
|
* Click connect on STM32cube programmer
|
||||||
|
* flash it
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Flash Arudino
|
||||||
|
## Arduino IDE
|
||||||
|
* add stm32duino pacakage index in **Preference panel** : http://dan.drown.org/stm32duino/package_STM32duino_index.json as **Additional Boards Manager URLs:** and install STM32F1xx/GD32F1xx boards
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* verbose all outputs:
|
||||||
|

|
||||||
|
|
||||||
|
* Select upload method ,board type is **Generic STM32F103R series **
|
||||||
|

|
||||||
|
|
||||||
|
* Set cpu mhz to 48Mhz
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
* Put 1 OFF in the back of keyboard
|
||||||
|
* User arduino IDE to open [devterm_keyboard.ino](https://github.com/clockworkpi/DevTerm/blob/main/Code/devterm_keyboard/devterm_keyboard.ino)
|
||||||
|
* flash it
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
# CN version
|
||||||
|
https://shimo.im/docs/Tc8RVQWdjvXtwhYv/ 《GD32f103rgt6/CKSF103R* 与stm32duino bootloader》
|
||||||
|
|
||||||
|
custom keyboard:
|
||||||
|
|
||||||
|
https://forum.clockworkpi.com/t/keyboard-stuck-in-bootloader-mode/8830/11
|
||||||
|
|
||||||
57
wiki/Compile-lineage-os-19.1-kernel-for-rpi4(cm4).md
Normal file
57
wiki/Compile-lineage-os-19.1-kernel-for-rpi4(cm4).md
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# Prepare
|
||||||
|
```
|
||||||
|
mkdir -p ~/data/andriod
|
||||||
|
mkdir -p ~/data/github/lineage-rpi
|
||||||
|
cd ~/data/github/lineage-rpi
|
||||||
|
|
||||||
|
git clone https://github.com/lineage-rpi/android_kernel_brcm_rpi -b lineage-19.1
|
||||||
|
git clone https://github.com/lineage-rpi/proprietary_vendor_brcm -b lineage-19.1
|
||||||
|
|
||||||
|
cd ~/data/andriod
|
||||||
|
|
||||||
|
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 -b pie-release
|
||||||
|
```
|
||||||
|
# Fix firmware path
|
||||||
|
|
||||||
|
edit `~/data/github/lineage-rpi/android_kernel_brcm_rpi/arch/arm64/configs/lineageos_rpi4_defconfig` line 1537
|
||||||
|
to be
|
||||||
|
`CONFIG_EXTRA_FIRMWARE_DIR="/home/cpi/data/github/lineage-rpi/proprietary_vendor_brcm/rpi4/proprietary/vendor/firmware"`
|
||||||
|
|
||||||
|
# Compile
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ~/data/github/lineage-rpi/android_kernel_brcm_rpi
|
||||||
|
```
|
||||||
|
|
||||||
|
create **m.sh** with content like:
|
||||||
|
|
||||||
|
```
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export PATH=/home/cpi/data/andriod/aarch64-linux-android-4.9/bin:$PATH
|
||||||
|
|
||||||
|
ARCH=arm64 CROSS_COMPILE=aarch64-linux-androidkernel- make lineageos_rpi4_defconfig
|
||||||
|
ARCH=arm64 CROSS_COMPILE=aarch64-linux-androidkernel- make Image dtbs -j1
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
chmod +x m.sh
|
||||||
|
./m.sh # start kernel compile
|
||||||
|
```
|
||||||
|
|
||||||
|
# Replace files
|
||||||
|
copy
|
||||||
|
* bcm2711-rpi-400.dtb
|
||||||
|
* bcm2711-rpi-4-b.dtb
|
||||||
|
* bcm2711-rpi-cm4.dtb
|
||||||
|
* bcm2711-rpi-cm4s.dtb
|
||||||
|
|
||||||
|
|
||||||
|
from `~/data/github/lineage-rpi/android_kernel_brcm_rpi/arch/arm64/boot/dts/broadcom/` to lineage os image boot partition
|
||||||
|
|
||||||
|
copy `~/data/github/lineage-rpi/android_kernel_brcm_rpi/arch/arm64/boot/Image` to to lineage os image boot partition
|
||||||
|
|
||||||
|
copy `~/data/github/lineage-rpi/android_kernel_brcm_rpi/arch/arm64/boot/dts/overlays/vc4-kms-v3d.dtbo` to to lineage os image boot partition/overlays
|
||||||
|
|
||||||
|
# Kernel config
|
||||||
|
https://gist.github.com/cuu/92bfa28a9b6de421834e5f9f408a12a4
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
# Compile the widescreen version of Cave Story from the source code
|
||||||
|
|
||||||
|
### Install the necessary packages:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
sudo apt install build-essential libpng-dev libjpeg-dev make cmake cmake-data git libsdl2-dev libsdl2-doc libsdl2-gfx-dev libsdl2-gfx-doc libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev cmake -y -qq
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Compile the engine (it takes about 1 hour):
|
||||||
|
```
|
||||||
|
cd ~
|
||||||
|
git clone https://github.com/nxengine/nxengine-evo
|
||||||
|
```
|
||||||
|
### Modified to the widescreen version:
|
||||||
|
|
||||||
|
`vim ~/nxengine-evo/src/graphics/Renderer.cpp`
|
||||||
|
|
||||||
|
|
||||||
|
### Edit the 225 line and save and exit the following line
|
||||||
|
```
|
||||||
|
{(char *)"1280x480", 1280, 480, 640, 240, 2, true, true},
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
cd nxengine-evo
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
make
|
||||||
|
cd ~/nxengine-evo
|
||||||
|
wget https://www.cavestory.org/downloads/cavestoryen.zip
|
||||||
|
unzip cavestoryen.zip
|
||||||
|
cp -r CaveStory/data/* data/
|
||||||
|
cp CaveStory/Doukutsu.exe .
|
||||||
|
./build/nxextract
|
||||||
|
cd build
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Confirm that the original version can run normally:
|
||||||
|
`./nxengine-evo`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Run the modified version:
|
||||||
|
`./nxengine-evo`
|
||||||
|
|
||||||
|
### After running, press the Esc key, enter Options->Graphics, select the resolution as 1280x480, and open the full screen.
|
||||||
|
|
||||||
|
|
||||||
|
### Reinstall after confirming that there is no problem:
|
||||||
|
```
|
||||||
|
cd ~/nxengine-evo/build
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use the command **nxengine-evo **to run the game in any directory
|
||||||
233
wiki/Create-DevTerm-A04-OS-image-from-scratch.md
Normal file
233
wiki/Create-DevTerm-A04-OS-image-from-scratch.md
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
**This wiki maybe outdated since armbian build system is always updating , so don't panic**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Generate the prototype os image
|
||||||
|
```
|
||||||
|
cd ~
|
||||||
|
git clone https://github.com/armbian/build.git
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
|
||||||
|
cd build
|
||||||
|
|
||||||
|
git reset --hard 5fa022603c0948cc59688ba782b3711f980a0be3
|
||||||
|
|
||||||
|
cp -rf ~/DevTerm/Code/patch/armbian_build_a04/userpatches/* userpatches/
|
||||||
|
cp -rf ~/DevTerm/Code/patch/armbian_build_a04/config/boards/* config/boards/
|
||||||
|
cp -rf ~/DevTerm/Code/patch/armbian_build_a04/config/kernel/* config/kernel/
|
||||||
|
|
||||||
|
#Then exec ./compile.sh under armbian build
|
||||||
|
cd ~/build && ./compile.sh
|
||||||
|
```
|
||||||
|
after image done
|
||||||
|
uncompress the
|
||||||
|
`linux-dtb-current-sunxi64_21.11.0-trunk_arm64.deb`
|
||||||
|
`linux-image-current-sunxi64_21.11.0-trunk_arm64.deb`
|
||||||
|
|
||||||
|
and then combine all files ,all the postinst, preinst,prerm,postrm
|
||||||
|
to be one `devterm-kernel-current-cpi-a04.deb`
|
||||||
|
the reason is if not doing this , `apt-get upgrade` will replace the linux-dto,linux-image* in future, which will cause boot failed
|
||||||
|
so to keep a04 linux kernel in safe , I made devterm-kernel-current-cpi-a04
|
||||||
|
|
||||||
|
# Prepare to chroot into the image
|
||||||
|
```
|
||||||
|
sudo apt install -y qemu-user-static
|
||||||
|
sudo losetup -f # find the avaiable loop device number,eg:loop11
|
||||||
|
sudo losetup -P /dev/loop11 ~/build/output/images/Armbian_21.11.0-trunk_Clockworkpi-a04_hirsute_current_5.10.75_xfce_desktop.img
|
||||||
|
sudo mount /dev/loop11p1 /mnt/p1/
|
||||||
|
|
||||||
|
cd /mnt/p1
|
||||||
|
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
## Inside chroot
|
||||||
|
(inside)
|
||||||
|
### import clockworpi apt
|
||||||
|
```
|
||||||
|
curl https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | tee /etc/apt/trusted.gpg.d/clockworkpi.asc
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | tee /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
```
|
||||||
|
|
||||||
|
### Preset cpi username and password
|
||||||
|
```
|
||||||
|
sh /etc/profile.d/armbian-check-first-login.sh
|
||||||
|
```
|
||||||
|
### Install kernel
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y devterm-kernel-current-cpi-a04
|
||||||
|
apt install -y xfce4-power-manager
|
||||||
|
touch /home/cpi/.first_start
|
||||||
|
chown cpi:cpi /home/cpi/.first_start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Allow sudo cpi without password prompt
|
||||||
|
|
||||||
|
```
|
||||||
|
echo -e "cpi\tALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cpi
|
||||||
|
|
||||||
|
```
|
||||||
|
### Config xrandr
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > /etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
xrandr --output None-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Config lightdm
|
||||||
|
#### autologin
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF > /etc/lightdm/lightdm.conf.d/12-autologin.conf
|
||||||
|
[Seat:*]
|
||||||
|
autologin-user=cpi
|
||||||
|
autologin-user-timeout=0
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF > /etc/lightdm/lightdm.conf.d/13-rotate-dsi.conf
|
||||||
|
[Seat:*]
|
||||||
|
greeter-setup-script=/etc/lightdm/setup.sh
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/setup.sh
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
xrandr --output None-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
sudo chmod +x /etc/lightdm/setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### config lightdm background
|
||||||
|
```
|
||||||
|
sudo sed -i '/background/c\background = #202020' /etc/lightdm/slick-greeter.conf
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Disable app crash report dialog
|
||||||
|
```
|
||||||
|
sudo sed -i '/enabled=1/c\enabled=0' /etc/default/apport
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hide suspend button
|
||||||
|
cd /home/cpi/.config/xfce4/xfconf/xfce-perchannel-xml
|
||||||
|
```
|
||||||
|
sudo sed -i 's/\(name\=\".*ShowSuspend.*\"\s\)value="\(true\|false\)"/\1value=\"false\"/gi' xfce4-session.xml
|
||||||
|
|
||||||
|
sudo sed -i 's/\(type\=\".*string.*\"\s\)value="\(+suspend\)"/\1value=\"-suspend\"/gi' xfce4-panel.xml
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Add framebuffer console rotate /boot/armbianEnv.txt
|
||||||
|
```
|
||||||
|
extraargs=fbcon=rotate:1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Change ssh login banner
|
||||||
|
In `/etc/update-motd.d/10-armbian-header`
|
||||||
|
```
|
||||||
|
TERM=linux toilet -f standard -F metal $(echo $BOARD_NAME | sed 's/Orange Pi/OPi/' | sed 's/NanoPi/NPi/' | sed 's/Banana Pi/BPi/' | sed 's/Clockworkpi A04/Clockworkpi/')
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install devterm packages
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y devterm-wiringpi-cpi-a04 devterm-thermal-printer devterm-thermal-printer-cups devterm-first-start-a04 devterm-fan-daemon-cpi-a04 devterm-audio-patch
|
||||||
|
|
||||||
|
```
|
||||||
|
### Disable sshd
|
||||||
|
```
|
||||||
|
sudo touch /etc/ssh/sshd_not_to_be_run
|
||||||
|
|
||||||
|
```
|
||||||
|
### Install ibus input method for CJK
|
||||||
|
|
||||||
|
`sudo apt install ibus ibus-pinyin ibus-gtk ibus-gtk3 -y`
|
||||||
|
```
|
||||||
|
cat <<EOF >/home/cpi/.config/autostart/ibus.desktop
|
||||||
|
[Desktop Entry]
|
||||||
|
Exec=ibus-daemon -drxR
|
||||||
|
GenericName=IBus
|
||||||
|
Name[zh_CN]=IBus
|
||||||
|
Name=IBus
|
||||||
|
Name[en_US]=IBus
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/profile.d/ibus.sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export XIM_PROGRAM=ibus
|
||||||
|
export XIM=ibus
|
||||||
|
export XMODIFIERS=@im=ibus
|
||||||
|
export GTK_IM_MODULE=ibus
|
||||||
|
export QT_IM_MODULE=ibus
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
### GDM3
|
||||||
|
due to the panfrost screen flashing issue with lightdm,use gdm3 instead of lightdm
|
||||||
|
` sudo apt install gdm3`
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF > /usr/share/gdm/greeter/autostart/01_rotate.desktop
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Rotate Screen
|
||||||
|
Exec=/etc/lightdm/setup.sh
|
||||||
|
Terminal=false
|
||||||
|
NoDisplay=true
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
#### gdm3 background and hide poweroff,suspend
|
||||||
|
In `/etc/gdm3/greeter.dconf-defaults `
|
||||||
|
```
|
||||||
|
...
|
||||||
|
[org/gnome/desktop/background]
|
||||||
|
picture-options='none'
|
||||||
|
primary-color='#222222'
|
||||||
|
...
|
||||||
|
|
||||||
|
[org/gnome/login-screen]
|
||||||
|
disable-restart-buttons=true
|
||||||
|
```
|
||||||
|
#### config gdm3 autologin
|
||||||
|
/etc/gdm3/custom.conf
|
||||||
|
|
||||||
|
```
|
||||||
|
[daemon]
|
||||||
|
...
|
||||||
|
AutomaticLoginEnable = true
|
||||||
|
AutomaticLogin = cpi
|
||||||
|
```
|
||||||
|
|
||||||
|
## libreoffice fix for panfrost issue
|
||||||
|
` sudo apt install libreoffice-gtk3 `
|
||||||
|
|
||||||
|
# Exit from chroot
|
||||||
|
```
|
||||||
|
exit
|
||||||
|
(out)
|
||||||
|
sudo umount /mnt/p1/dev/pts
|
||||||
|
sudo umount /mnt/p1/dev
|
||||||
|
sudo umount /mnt/p1/proc
|
||||||
|
sudo umount /mnt/p1/sys
|
||||||
|
##clear bash
|
||||||
|
sudo rm -rf root/.bash_history
|
||||||
|
cd -
|
||||||
|
sudo umount /mnt/p1
|
||||||
|
sudo losetup -D /dev/loop11
|
||||||
|
```
|
||||||
212
wiki/Create-DevTerm-A06-OS-image-from-scratch.md
Normal file
212
wiki/Create-DevTerm-A06-OS-image-from-scratch.md
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
# Intro
|
||||||
|
DevTerm A06 os image based on Armbian with current kernel branch, XFCE desktop
|
||||||
|
and it is better to run a Ubuntu 21.04 in a VirtualBox with a good bandwidth network to do all the jobs
|
||||||
|
If the condition of the network is not so well,
|
||||||
|
the Armbian build process will fail on some packages downloading or mirrors connecting
|
||||||
|
|
||||||
|
The entire operation requires a certain experience in linux
|
||||||
|
be careful
|
||||||
|
|
||||||
|
**This wiki maybe outdated since armbian build system is always updating , so don't panic**
|
||||||
|
|
||||||
|
# Build armbian image for A06
|
||||||
|
```
|
||||||
|
cd ~
|
||||||
|
git clone https://github.com/armbian/build.git
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
|
||||||
|
cd build
|
||||||
|
git reset --hard 43d179914ae9e1ebb5d72315d9f9f68f5fb3e330
|
||||||
|
|
||||||
|
mkdir -p userpatches/kernel/rockchip64-current/
|
||||||
|
mkdir -p userpatches/u-boot/u-boot-rockchip64-mainline/
|
||||||
|
|
||||||
|
git apply ~/DevTerm/Code/patch/armbian_build_a06/patch/armbian.patch
|
||||||
|
cp ~/DevTerm/Code/patch/armbian_build_a06/patch/kernel*.patch userpatches/kernel/rockchip64-current/
|
||||||
|
cp ~/DevTerm/Code/patch/armbian_build_a06/patch/uboot*.patch userpatches/u-boot/u-boot-rockchip64-mainline/
|
||||||
|
cp -f ~/DevTerm/Code/patch/armbian_build_a06/patch/lib.config userpatches/
|
||||||
|
cp ~/DevTerm/Code/patch/armbian_build_a06/patch/clockworkpi-a06.conf config/boards/
|
||||||
|
|
||||||
|
#Then exec ./compile.sh under armbian build
|
||||||
|
cd ~/build && sudo ./compile.sh BOARD=clockworkpi-a06 BRANCH=current BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=yes KERNEL_CONFIGURE=no
|
||||||
|
```
|
||||||
|
|
||||||
|
after image done
|
||||||
|
uncompress the
|
||||||
|
`linux-dtb-current-rockchip64_21.08.0-trunk_arm64.deb`
|
||||||
|
`linux-image-current-rockchip64_21.08.0-trunk_arm64.deb`
|
||||||
|
|
||||||
|
and then combine all files ,all the postinst, preinst,prerm,postrm
|
||||||
|
to be one `devterm-kernel-current-cpi-a06.deb`
|
||||||
|
the reason is if not doing this , `apt-get upgrade` will replace the linux-dto,linux-image* in future, which will cause boot failed
|
||||||
|
so to keep a06 linux kernel in safe , I made devterm-kernel-current-cpi-a06
|
||||||
|
|
||||||
|
# Chroot image
|
||||||
|
```
|
||||||
|
sudo losetup -P /dev/loop0 Armbian_21.08.0-trunk_Clockworkpi-a06_focal_current_5.10.55_xfce_desktop.img
|
||||||
|
sudo mount /dev/loop0p1 /mnt/p1
|
||||||
|
|
||||||
|
cd /mnt/p1
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
sudo mv etc/ld.so.preload etc/ld_so_preload
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inside Chroot
|
||||||
|
### Run password wizard
|
||||||
|
```
|
||||||
|
sh /etc/profile.d/armbian-check-first-login.sh
|
||||||
|
```
|
||||||
|
set **root** password,create default user **cpi** with password **cpi**
|
||||||
|
```
|
||||||
|
touch /home/cpi/.first_start
|
||||||
|
chown cpi:cpi /home/cpi/.first_start
|
||||||
|
```
|
||||||
|
### Install devterm software
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install curl wget -y
|
||||||
|
|
||||||
|
curl https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo tee /etc/apt/trusted.gpg.d/clockworkpi.asc
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
sudo apt remove linux-image*
|
||||||
|
sudo apt install devterm-kernel-current-cpi-a06 devterm-fan-daemon-cpi-a06 devterm-thermal-printer devterm-thermal-printer-cups devterm-wiringpi-cpi devterm-first-start-a06 devterm-audio-patch
|
||||||
|
```
|
||||||
|
|
||||||
|
### /boot/ArmbianEnv.txt
|
||||||
|
```
|
||||||
|
bootlogo=false
|
||||||
|
extraargs= fbcon=rotate:1
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### autologin
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF > /etc/lightdm/lightdm.conf.d/12-autologin.conf
|
||||||
|
|
||||||
|
[Seat:*]
|
||||||
|
autologin-user=cpi
|
||||||
|
autologin-user-timeout=0
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
### config lightdm
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > /etc/lightdm/lightdm.conf.d/13-rotate-dsi.conf
|
||||||
|
[Seat:*]
|
||||||
|
greeter-setup-script=/etc/lightdm/setup.sh
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/setup.sh
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
sudo chmod +x /etc/lightdm/setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### config xrandr
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > /etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
### additional software
|
||||||
|
```
|
||||||
|
sudo apt remove celluloid mpv
|
||||||
|
sudo apt install -y arandr chromium-browser vlc cpupower-gui xfce4-power-manager
|
||||||
|
```
|
||||||
|
### /etc/default/apport
|
||||||
|
`enable=0`
|
||||||
|
|
||||||
|
### ssh banner fix
|
||||||
|
/etc/update-motd.d/10-armbian-header
|
||||||
|
```
|
||||||
|
.... sed 's/Banana Pi/BPi/' | sed 's/Clockworkpi A06/Clockworkpi/')
|
||||||
|
|
||||||
|
```
|
||||||
|
### Disable Display power management in xfce4 power manager
|
||||||
|
display power management must be disabled ,once the display turn off, you need to reboot to get it back
|
||||||
|
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml
|
||||||
|
|
||||||
|
```
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<channel name="xfce4-power-manager" version="1.0">
|
||||||
|
<property name="xfce4-power-manager" type="empty">
|
||||||
|
<property name="power-button-action" type="empty"/>
|
||||||
|
<property name="brightness-switch-restore-on-exit" type="int" value="0"/>
|
||||||
|
<property name="brightness-switch" type="int" value="0"/>
|
||||||
|
<property name="show-tray-icon" type="int" value="1"/>
|
||||||
|
<property name="lid-action-on-battery" type="uint" value="1"/>
|
||||||
|
<property name="logind-handle-lid-switch" type="bool" value="false"/>
|
||||||
|
<property name="lid-action-on-ac" type="uint" value="0"/>
|
||||||
|
<property name="inactivity-sleep-mode-on-battery" type="uint" value="1"/>
|
||||||
|
<property name="sleep-button-action" type="uint" value="1"/>
|
||||||
|
<property name="hibernate-button-action" type="uint" value="1"/>
|
||||||
|
<property name="lock-screen-suspend-hibernate" type="bool" value="false"/>
|
||||||
|
<property name="critical-power-action" type="uint" value="4"/>
|
||||||
|
<property name="critical-power-level" type="uint" value="5"/>
|
||||||
|
<property name="dpms-enabled" type="bool" value="false"/>
|
||||||
|
<property name="blank-on-ac" type="int" value="0"/>
|
||||||
|
<property name="brightness-on-battery" type="uint" value="120"/>
|
||||||
|
<property name="blank-on-battery" type="int" value="0"/>
|
||||||
|
<property name="brightness-on-ac" type="uint" value="120"/>
|
||||||
|
<property name="brightness-level-on-battery" type="uint" value="40"/>
|
||||||
|
<property name="brightness-level-on-ac" type="uint" value="42"/>
|
||||||
|
</property>
|
||||||
|
</channel>
|
||||||
|
```
|
||||||
|
### Default wallpaper
|
||||||
|
```
|
||||||
|
/usr/share/backgrounds/xfce/xfce-verticals.png
|
||||||
|
```
|
||||||
|
# Quit Chroot
|
||||||
|
```
|
||||||
|
exit
|
||||||
|
sudo mv etc/ld_so_preload etc/ld.so.preload
|
||||||
|
|
||||||
|
sudo umount /mnt/p1/dev/pts
|
||||||
|
sudo umount /mnt/p1/dev
|
||||||
|
sudo umount /mnt/p1/proc
|
||||||
|
sudo umount /mnt/p1/sys
|
||||||
|
##clear bash
|
||||||
|
sudo rm -rf root/.bash_history
|
||||||
|
sudo rm usr/bin/qemu-arm-static
|
||||||
|
|
||||||
|
cd -
|
||||||
|
sudo umount /mnt/p1
|
||||||
|
```
|
||||||
|
|
||||||
|
umount may failed at /mnt/p1/dev
|
||||||
|
just use `ps aux | grep cupsd` to see if there a process named like `/usr/bin/qemu-aarch64-static /usr/sbin/cupsd -C /etc/cups/cupsd.conf -s /etc/cups/cups-files.conf`
|
||||||
|
|
||||||
|
find the pid ,use `sudo kill -9 ${pid}` with that pid
|
||||||
|
then umount again
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Flash the image to SD card
|
||||||
|
* Linux
|
||||||
|
`sudo dd if=Armbian_21.08.0-trunk_Clockworkpi-a06_focal_current_5.10.55_xfce_desktop.img of=/dev/sdX bs=8M status=progress`
|
||||||
|
|
||||||
|
|
||||||
|
# Ubuntu 2104 Hirsute went offline
|
||||||
|
fix:
|
||||||
|
https://forum.clockworkpi.com/t/hirsute-went-offline-late-july-2022-how-to-manage/8770/3
|
||||||
|
|
||||||
|
new os image: 26f52bfde573479960d8696f407d19b9 http://dl.clockworkpi.com/DevTerm_A06_v0.2h.img.bz2
|
||||||
|
switched to ubuntu jammy ,LTS up to 2037
|
||||||
|
|
||||||
|
# 2023 06 30 new kernel patch:
|
||||||
|
https://github.com/clockworkpi/uConsole/tree/master/Code/patch/a06/20230630
|
||||||
|
|
||||||
|
|
||||||
94
wiki/Create-DevTerm-CM3-OS-image-from-scratch.md
Normal file
94
wiki/Create-DevTerm-CM3-OS-image-from-scratch.md
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
## Intro
|
||||||
|
The image based on raspberry pi os
|
||||||
|
and it is better to run a Ubuntu 21.04 in a VirtualBox to do all the jobs
|
||||||
|
The entire operation requires a certain experience in linux
|
||||||
|
be careful
|
||||||
|
|
||||||
|
## Start a chroot env
|
||||||
|
```
|
||||||
|
wget https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-full.zip
|
||||||
|
|
||||||
|
unzip 2021-05-07-raspios-buster-armhf-full.zip
|
||||||
|
|
||||||
|
sudo losetup --show -f -P 2021-05-07-raspios-buster-armhf-full.img #assume loop0
|
||||||
|
sudo mount /dev/loop0p2 /mnt/p2
|
||||||
|
sudo mount /dev/loop0p1 /mnt/p2/boot
|
||||||
|
|
||||||
|
cd /mnt/p2
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
#sudo mv etc/ld.so.preload etc/ld_so_preload
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inside chroot
|
||||||
|
```
|
||||||
|
curl https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo tee /etc/apt/trusted.gpg.d/clockworkpi.asc
|
||||||
|
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
|
||||||
|
sudo apt update && sudo apt install devterm-thermal-printer devterm-keyboard-firmware devterm-fan-temp-daemon-rpi devterm-thermal-printer-cups devterm-kernel-rpi devterm-audio-patch -y
|
||||||
|
```
|
||||||
|
**Config xrandr**
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
**config lightdm**
|
||||||
|
|
||||||
|
`/etc/lightdm/lightdm.conf`
|
||||||
|
|
||||||
|
`greeter-setup-script=/etc/lightdm/setup.sh`
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/setup.sh
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
`sudo chmod +x /etc/lightdm/setup.sh`
|
||||||
|
|
||||||
|
**Modify /etc/dphys-swapfile**
|
||||||
|
```
|
||||||
|
CONF_SWAPSIZE=512
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change the default wallpaper**
|
||||||
|
The following files changed
|
||||||
|
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-1.conf
|
||||||
|
* /etc/lightdm/pi-greeter.conf
|
||||||
|
* /home/pi/.config/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
|
||||||
|
Delete wallpaper address `temple.jpg`,change the `desktop_bg` color to `#202020`
|
||||||
|
change `/etc/hostname` to clockworkpi
|
||||||
|
in `/boot/cmdline.txt` ,add `fbcon=rotate:1`, remove `quiet`
|
||||||
|
|
||||||
|
### Now quit the chroot env
|
||||||
|
```
|
||||||
|
exit
|
||||||
|
#sudo mv etc/ld_so_preload etc/ld.so.preload
|
||||||
|
|
||||||
|
sudo umount /mnt/p2/dev/pts
|
||||||
|
sudo umount /mnt/p2/dev
|
||||||
|
sudo umount /mnt/p2/proc
|
||||||
|
sudo umount /mnt/p2/sys
|
||||||
|
##clear bash
|
||||||
|
sudo rm -rf root/.bash_history
|
||||||
|
#sudo rm usr/bin/qemu-arm-static
|
||||||
|
|
||||||
|
cd -
|
||||||
|
sudo umount /mnt/p2/boot
|
||||||
|
sudo umount /mnt/p2
|
||||||
|
sudo losetup -D /dev/loop0 #assume loop0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flash the image to SD card
|
||||||
|
* Linux
|
||||||
|
`sudo dd if=2021-05-07-raspios-buster-armhf-full.img of=/dev/sdX bs=8M status=progress`
|
||||||
|
|
||||||
|
|
||||||
140
wiki/Create-DevTerm-CM4-OS-image-from-scratch.md
Normal file
140
wiki/Create-DevTerm-CM4-OS-image-from-scratch.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
## Intro
|
||||||
|
The image based on raspberry pi os
|
||||||
|
for raspberry pi cm4 with devterm cm4 adapter
|
||||||
|
and it is better to run a Ubuntu 21.04 in a VirtualBox to do all the jobs
|
||||||
|
The entire operation requires a certain experience in linux
|
||||||
|
be careful
|
||||||
|
|
||||||
|
## Start a chroot env
|
||||||
|
```bash
|
||||||
|
wget https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-full.zip
|
||||||
|
|
||||||
|
unzip 2021-05-07-raspios-buster-armhf-full.zip
|
||||||
|
|
||||||
|
sudo losetup --show -f -P 2021-05-07-raspios-buster-armhf-full.img #assume loop0
|
||||||
|
sudo mount /dev/loop0p2 /mnt/p2
|
||||||
|
sudo mount /dev/loop0p1 /mnt/p2/boot
|
||||||
|
|
||||||
|
cd /mnt/p2
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
#sudo mv etc/ld.so.preload etc/ld_so_preload
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inside chroot
|
||||||
|
```bash
|
||||||
|
curl https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo tee /etc/apt/trusted.gpg.d/clockworkpi.asc
|
||||||
|
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
|
||||||
|
sudo apt update && sudo apt install devterm-thermal-printer-cm4 devterm-fan-temp-daemon-cm4 devterm-kernel-cm4-rpi devterm-audio-patch devterm-wiringpi-cm4-cpi -y
|
||||||
|
|
||||||
|
sudo apt install -y devterm-thermal-printer-cups
|
||||||
|
```
|
||||||
|
**Config xrandr**
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
**config lightdm**
|
||||||
|
|
||||||
|
`/etc/lightdm/lightdm.conf`
|
||||||
|
|
||||||
|
`greeter-setup-script=/etc/lightdm/setup.sh`
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/setup.sh
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
`sudo chmod +x /etc/lightdm/setup.sh`
|
||||||
|
|
||||||
|
**Modify /etc/dphys-swapfile**
|
||||||
|
```
|
||||||
|
CONF_SWAPSIZE=512
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change the default wallpaper**
|
||||||
|
The following files changed
|
||||||
|
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-1.conf
|
||||||
|
* /etc/lightdm/pi-greeter.conf
|
||||||
|
* /home/pi/.config/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
|
||||||
|
Delete wallpaper address `temple.jpg`,change the `desktop_bg` color to `#202020`
|
||||||
|
change `/etc/hostname` to clockworkpi
|
||||||
|
in `/boot/cmdline.txt` ,add `fbcon=rotate:1`, remove `quiet`
|
||||||
|
|
||||||
|
**Screen rotation**
|
||||||
|
change
|
||||||
|
```
|
||||||
|
/etc/skel/.config/monitors.xml
|
||||||
|
/home/{pi,rpi-first-boot-wizard}/.config/monitors.xml
|
||||||
|
```
|
||||||
|
to be like
|
||||||
|
```xml
|
||||||
|
<monitors version="2">
|
||||||
|
<configuration>
|
||||||
|
<logicalmonitor>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<primary>yes</primary>
|
||||||
|
<monitor>
|
||||||
|
<monitorspec>
|
||||||
|
<connector>DSI-1</connector>
|
||||||
|
<vendor>unknown</vendor>
|
||||||
|
<product>unknown</product>
|
||||||
|
<serial>unknown</serial>
|
||||||
|
</monitorspec>
|
||||||
|
<mode>
|
||||||
|
<width>480</width>
|
||||||
|
<height>1280</height>
|
||||||
|
<rate>60.000</rate>
|
||||||
|
</mode>
|
||||||
|
</monitor>
|
||||||
|
<transform>
|
||||||
|
<rotation>right</rotation>
|
||||||
|
</transform>
|
||||||
|
</logicalmonitor>
|
||||||
|
</configuration>
|
||||||
|
</monitors>
|
||||||
|
```
|
||||||
|
for uConsole, replace **480 to 720** in above **monitors.xml**
|
||||||
|
|
||||||
|
### console rotation
|
||||||
|
/boot/cmdline.txt add **fbcon=rotate:1** in the end of
|
||||||
|
```
|
||||||
|
console=......... fbcon=rotate:1
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Now quit the chroot env
|
||||||
|
```bash
|
||||||
|
exit
|
||||||
|
#sudo mv etc/ld_so_preload etc/ld.so.preload
|
||||||
|
|
||||||
|
sudo umount /mnt/p2/dev/pts
|
||||||
|
sudo umount /mnt/p2/dev
|
||||||
|
sudo umount /mnt/p2/proc
|
||||||
|
sudo umount /mnt/p2/sys
|
||||||
|
##clear bash
|
||||||
|
sudo rm -rf root/.bash_history
|
||||||
|
#sudo rm usr/bin/qemu-arm-static
|
||||||
|
|
||||||
|
cd -
|
||||||
|
sudo umount /mnt/p2/boot
|
||||||
|
sudo umount /mnt/p2
|
||||||
|
sudo losetup -D /dev/loop0 #assume loop0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flash the image to SD card
|
||||||
|
* Linux
|
||||||
|
`sudo dd if=2021-05-07-raspios-buster-armhf-full.img of=/dev/sdX bs=8M status=progress`
|
||||||
|
|
||||||
471
wiki/Create-DevTerm-R01-OS-image-from-scratch.md
Normal file
471
wiki/Create-DevTerm-R01-OS-image-from-scratch.md
Normal file
@ -0,0 +1,471 @@
|
|||||||
|
|
||||||
|
# Before start
|
||||||
|
Our system image is modified based on fedora wiki
|
||||||
|
Mainly replace the kernel and rootfs
|
||||||
|
Some linux experience is required to handle every possible situation
|
||||||
|
there are some discrepancies with the final system image
|
||||||
|
So this document is more suitable for the guidance of the R-01 system image
|
||||||
|
|
||||||
|
|
||||||
|
# Prepare
|
||||||
|
|
||||||
|
a ubuntu linux system, like ubuntu 21.04
|
||||||
|
|
||||||
|
install riscv64 gcc
|
||||||
|
```
|
||||||
|
sudo apt install gcc-11-riscv64-linux-gnu binutils-riscv64-linux-gnu
|
||||||
|
sudo apt install git
|
||||||
|
sudo apt install make
|
||||||
|
sudo apt install build-essential
|
||||||
|
sudo apt install libfontconfig1
|
||||||
|
sudo apt install ncurses-devel
|
||||||
|
sudo apt install libncurses-dev
|
||||||
|
sudo apt install build-essential
|
||||||
|
sudo apt install flex bison
|
||||||
|
sudo apt install python3-distutils
|
||||||
|
sudo apt install swig
|
||||||
|
sudo apt install python3-dev
|
||||||
|
sudo apt install openssl
|
||||||
|
sudo apt install libssl-dev
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
install qemu static for chroot
|
||||||
|
|
||||||
|
`sudo apt install qemu-user-static`
|
||||||
|
|
||||||
|
|
||||||
|
manually fix default compiler link:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-cpp-11 /usr/bin/riscv64-linux-gnu-cpp
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-nm-11 /usr/bin/riscv64-linux-gnu-gcc-nm
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcov-dump-11 /usr/bin/riscv64-linux-gnu-gcov-dump
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-11 /usr/bin/riscv64-linux-gnu-gcc
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-ranlib-11 /usr/bin/riscv64-linux-gnu-gcc-ranlib
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcov-tool-11 /usr/bin/riscv64-linux-gnu-gcov-tool
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-ar-11 /usr/bin/riscv64-linux-gnu-gcc-ar
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-gcov-11 /usr/bin/riscv64-linux-gnu-gcov
|
||||||
|
sudo ln -s /usr/bin/riscv64-linux-gnu-lto-dump-11 /usr/bin/riscv64-linux-gnu-lto-dump
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Bootloader
|
||||||
|
|
||||||
|
### reference doc:
|
||||||
|
https://fedoraproject.org/wiki/Architectures/RISC-V/Allwinner
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/smaeul/sun20i_d1_spl
|
||||||
|
pushd sun20i_d1_spl
|
||||||
|
git checkout origin/mainline
|
||||||
|
make CROSS_COMPILE=riscv64-linux-gnu- p=sun20iw1p1 mmc
|
||||||
|
popd
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
pushd sun20i_d1_spl
|
||||||
|
sudo dd if=nboot/boot0_sdcard_sun20iw1p1.bin of=/dev/sdX bs=512 seek=16
|
||||||
|
```
|
||||||
|
|
||||||
|
git clone https://github.com/tekkamanninja/opensbi -b allwinner_d1
|
||||||
|
pushd opensbi
|
||||||
|
CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic FW_PIC=y BUILD_INFO=y make
|
||||||
|
popd
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/tekkamanninja/u-boot -b allwinner_d1
|
||||||
|
pushd u-boot
|
||||||
|
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv nezha_defconfig
|
||||||
|
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig
|
||||||
|
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv u-boot.bin u-boot.dtb
|
||||||
|
popd
|
||||||
|
```
|
||||||
|
**in menuconfig, there is an import option must be selected:**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
otherwises, the boot will hang
|
||||||
|
|
||||||
|
|
||||||
|
## u-boot.toc1
|
||||||
|
|
||||||
|
**toc1.cfg**
|
||||||
|
|
||||||
|
```
|
||||||
|
[opensbi]
|
||||||
|
file = fw_dynamic.bin
|
||||||
|
addr = 0x40000000
|
||||||
|
[dtb]
|
||||||
|
file = u-boot.dtb
|
||||||
|
addr = 0x44000000
|
||||||
|
[u-boot]
|
||||||
|
file = u-boot.bin
|
||||||
|
addr = 0x4a000000
|
||||||
|
```
|
||||||
|
```
|
||||||
|
pushd u-boot
|
||||||
|
cp ${PATH_TO_TOC1_CFG}/toc1.cfg ${PATH_TO_OPENSBI}/fw_dynamic.bin .
|
||||||
|
tools/mkimage -T sunxi_toc1 -d toc1.cfg u-boot.toc1
|
||||||
|
popd
|
||||||
|
```
|
||||||
|
|
||||||
|
pushd u-boot
|
||||||
|
sudo dd if=u-boot.toc1 of=/dev/sdX bs=512 seek=32800
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
# Disk partition prepare
|
||||||
|
|
||||||
|
## Original fedora image fdisk partition
|
||||||
|
```
|
||||||
|
Units: sectors of 1 * 512 = 512 bytes
|
||||||
|
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||||
|
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||||
|
Disklabel type: dos
|
||||||
|
Disk identifier: 0xda568ce2
|
||||||
|
|
||||||
|
Device Boot Start End Sectors Size Id Type
|
||||||
|
fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20211124-132603.n.0-sda.raw.img2 69632 319487 249856 122M c W95 FAT32 (LBA)
|
||||||
|
fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20211124-132603.n.0-sda.raw.img3 * 319488 1320959 1001472 489M 83 Linux
|
||||||
|
fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20211124-132603.n.0-sda.raw.img4 1320960 25319423 23998464 11.5G 83 Linux
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Create disk image file
|
||||||
|
|
||||||
|
### create image file with dd
|
||||||
|
```
|
||||||
|
MEGA=16777216
|
||||||
|
|
||||||
|
dd if=/dev/zero bs=$MEGA count=1024 of=disk.img
|
||||||
|
echo -e "o\nn\np\n2\n69632\n319487\nn\np\n3\n319488\n1320959\nn\np\n4\n1320960\n\n\nt\n2\nc\na\n3\n\nw" | fdisk disk.img
|
||||||
|
fdisk -l disk.img
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo losetup --show -f -P disk.img #/dev/loop1
|
||||||
|
sudo mkfs.vfat /dev/loop1p2
|
||||||
|
sudo mkfs.ext4 /dev/loop1p3
|
||||||
|
sudo mkfs.ext4 /dev/loop1p4
|
||||||
|
```
|
||||||
|
|
||||||
|
# Download ubuntu riscv image for rootfs
|
||||||
|
|
||||||
|
https://wiki.ubuntu.com/RISC-V
|
||||||
|
|
||||||
|
https://cdimage.ubuntu.com/releases/21.04/release/
|
||||||
|
|
||||||
|
https://cdimage.ubuntu.com/releases/21.04/release/ubuntu-21.04-preinstalled-server-riscv64+unmatched.img.xz
|
||||||
|
|
||||||
|
## Take rootfs of ubuntu out
|
||||||
|
```
|
||||||
|
sudo losetup --show -f -P ubuntu-21.04-preinstalled-server-riscv64+unmatched.img # eg: /dev/loop1,depends on your linux system
|
||||||
|
|
||||||
|
sudo mount /dev/loop1p1 /mnt/p1
|
||||||
|
sudo tar cpjfv ubuntu-21.04-preinstalled-server-riscv64+unmatched_rootfs.tar.bz2 -C /mnt/p1/ .
|
||||||
|
sudo umount /mnt/p1
|
||||||
|
sudo losetup -D /dev/loop1 #dettach,release /dev/loop1
|
||||||
|
```
|
||||||
|
download link:
|
||||||
|
https://mega.nz/file/IQFlWZKL#_ERlz3GXoUgxsIoaLHK8oQ2A6SNFcHhZpS2tF3N6RaQ
|
||||||
|
https://mega.nz/file/IIlAHKST#PP8feOr6tHxdbD-Zoyj64G4TfG7HG_1s3VHasisP6h0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Prebuilt files
|
||||||
|
|
||||||
|
### boot partition
|
||||||
|
|
||||||
|
|
||||||
|
#### ubuntu_2104_devterm_d1_boot.tar.bz2
|
||||||
|
```
|
||||||
|
https://mega.nz/file/NEsV1SRQ#FexV7wJhiUQKLcfBol4bB5m8UsX1O5qWet8geONclY4
|
||||||
|
https://mega.nz/file/YJUjiKKb#nrxH6BDvyGjpNSyZEzbRqbHk9ed9RE7jcuOPbTdximM
|
||||||
|
```
|
||||||
|
|
||||||
|
*included files*
|
||||||
|
|
||||||
|
```
|
||||||
|
├── board.dtb
|
||||||
|
├── **boot**
|
||||||
|
│ └── uEnv.txt
|
||||||
|
├── config-5.4.61
|
||||||
|
├── **efi**
|
||||||
|
├── **extlinux**
|
||||||
|
│ ├── extlinux.conf
|
||||||
|
│ └── extlinux.conf.cpi.bak
|
||||||
|
├── **grub2**
|
||||||
|
│ └── **themes**
|
||||||
|
│ └── **system**
|
||||||
|
│ └── **background.png**
|
||||||
|
├── grub.cfg
|
||||||
|
├── System.map-5.4.61
|
||||||
|
├── **uEnv.txt** -\> boot/uEnv.txt
|
||||||
|
└── vmlinuz-5.4.61
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ubuntu_2104_devterm_d1_EFI.tar.bz2
|
||||||
|
|
||||||
|
https://mega.nz/file/kNUBRBIB#NsPzKTDWbfBSTth7-eVz9gPjeaEdYnP7PfuYGz28cOk
|
||||||
|
|
||||||
|
**extlinux.conf is the file actually do the boot configuration**
|
||||||
|
|
||||||
|
# How to compile kernel
|
||||||
|
|
||||||
|
## get kernel source
|
||||||
|
https://github.com/cuu/last_linux-5.4.git
|
||||||
|
|
||||||
|
it is a mirror kernel code from tina_d1_h of all winner with all patched for devterm R-01
|
||||||
|
## Official toolchain
|
||||||
|
https://github.com/cuu/toolchain-thead-glibc #It's official allwinner toolchain
|
||||||
|
download toolchain
|
||||||
|
|
||||||
|
## Steps for compiling kernel
|
||||||
|
|
||||||
|
extract and put toolchain in any folder you like
|
||||||
|
|
||||||
|
then edit **m.sh** in `last_linux-5.4`
|
||||||
|
|
||||||
|
set correct path of toolchain for PATH
|
||||||
|
|
||||||
|
```
|
||||||
|
export PATH=/data/tina_d1_h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/:$PATH
|
||||||
|
|
||||||
|
```
|
||||||
|
to be
|
||||||
|
```
|
||||||
|
export PATH=/wherever_you_put_toolchain/riscv64-glibc-gcc-thead_20200702/bin/:$PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
then simply run ./m.sh to compile kernel
|
||||||
|
|
||||||
|
we just simple use the prebuit toolchain from all-winner to compile the patched kernel code based on all-winner tina for devterm_r01
|
||||||
|
|
||||||
|
and we have to ,because allwinner prebuilt toolchain has the neccessary custom opcode for the kernel of R-01
|
||||||
|
|
||||||
|
kernel patch url: https://github.com/clockworkpi/DevTerm/tree/main/Code/patch/d1
|
||||||
|
|
||||||
|
to get original tina code from allwinner ,visit https://open.allwinnertech.com/
|
||||||
|
|
||||||
|
## Mainline toolchain
|
||||||
|
https://github.com/riscv/riscv-gnu-toolchain
|
||||||
|
all the same as Official toolchain except need to disable Vector in kernel `make menuconfig`
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# Make alpha os image
|
||||||
|
|
||||||
|
required file list:
|
||||||
|
* ubuntu_2104_devterm_d1_EFI.tar.bz2
|
||||||
|
* ubuntu_2104_devterm_d1_boot.tar.bz2
|
||||||
|
* ubuntu-21.04-preinstalled-server-riscv64+unmatched_rootfs.tar.bz2
|
||||||
|
* boot0_sdcard_sun20iw1p1.bin
|
||||||
|
* u-boot.toc1
|
||||||
|
* disk.img with all partitions formatted
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo losetup --show -f -P disk.img ## assume we will have /dev/loop1
|
||||||
|
sudo dd if=boot0_sdcard_sun20iw1p1.bin of=/dev/loop1 bs=512 seek=16
|
||||||
|
sudo dd if=u-boot.toc1 of=/dev/loop1 bs=512 seek=32800
|
||||||
|
|
||||||
|
sudo mount /dev/loop1p2 /mnt/p2
|
||||||
|
sudo mount /dev/loop1p3 /mnt/p3
|
||||||
|
sudo mount /dev/loop1p4 /mnt/p4
|
||||||
|
sudo tar xpjfv ubuntu_2104_devterm_d1_EFI.tar.bz2 -C /mnt/p2
|
||||||
|
sudo tar xpjfv ubuntu_2104_devterm_d1_boot.tar.bz2 -C /mnt/p3
|
||||||
|
sudo tar xpjfv ubuntu-21.04-preinstalled-server-riscv64+unmatched_rootfs.tar.bz2 -C /mnt/p4
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Chroot part
|
||||||
|
```
|
||||||
|
sudo mount /dev/loop1p3 /mnt/p4/boot
|
||||||
|
cd /mnt/p4
|
||||||
|
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
### upgrade to devel
|
||||||
|
now we are in chroot
|
||||||
|
```
|
||||||
|
touch /etc/cloud/cloud-init.disabled
|
||||||
|
apt remove update-notifier-common
|
||||||
|
apt-get update && apt-get purge needrestart
|
||||||
|
```
|
||||||
|
then edit `/etc/apt/source.list`, replace all hirsute to devel
|
||||||
|
then
|
||||||
|
```
|
||||||
|
apt update
|
||||||
|
apt-get dist-upgrade
|
||||||
|
```
|
||||||
|
wait a long time until upgrade done(or retry if failed,it is neccessary for having a newer xorg/mesa in riscv to display)
|
||||||
|
|
||||||
|
after upgrade
|
||||||
|
```
|
||||||
|
apt update
|
||||||
|
apt install mesa-utils libgl1-mesa-glx libglx-mesa0 libgles2-mesa libegl-mesa0
|
||||||
|
apt install -y xterm cmus alsamixergui qutebrowser elinks vim emacs tilde bc gnuplot dosbox chocolate-doom gimp xfig xpdf xaos x11-apps gkrellm imagemagick inkscape
|
||||||
|
apt remove multipath-tools
|
||||||
|
```
|
||||||
|
|
||||||
|
### add cpi user
|
||||||
|
```
|
||||||
|
useradd -m cpi
|
||||||
|
|
||||||
|
#add into groups
|
||||||
|
usermod -a -G adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev,lxd,pulse,pulse-access cpi
|
||||||
|
```
|
||||||
|
### Deploy the TWM window manager env.
|
||||||
|
|
||||||
|
The R-01 uses twm as default window manager for low resource usage
|
||||||
|
|
||||||
|
```
|
||||||
|
wget https://github.com/clockworkpi/DevTerm/blob/main/Code/R01/d1_twm.tar.bz2?raw=true
|
||||||
|
|
||||||
|
tar xpjfv d1_twm.tar.bz2 -C /home/cpi
|
||||||
|
|
||||||
|
chown -R cpi:cpi /home/cpi
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### xorg fbdev config
|
||||||
|
rotate Xorg
|
||||||
|
```
|
||||||
|
ubuntu@ubuntu:~$ cat /etc/X11/xorg.conf.d/10-d1.conf
|
||||||
|
Section "Device"
|
||||||
|
Identifier "FBDEV"
|
||||||
|
Driver "fbdev"
|
||||||
|
Option "fbdev" "/dev/fb0"
|
||||||
|
Option "Rotate" "cw"
|
||||||
|
Option "SwapbuffersWait" "true"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Screen"
|
||||||
|
Identifier "Screen0"
|
||||||
|
Device "FBDEV"
|
||||||
|
DefaultDepth 24
|
||||||
|
|
||||||
|
Subsection "Display"
|
||||||
|
Depth 24
|
||||||
|
Modes "1280x480" "480x1280"
|
||||||
|
EndSubsection
|
||||||
|
|
||||||
|
EndSection
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optmise time of boot
|
||||||
|
```
|
||||||
|
sudo systemctl mask apt-daily.service apt-daily-upgrade.service
|
||||||
|
sudo systemctl disable apt-daily.service apt-daily-upgrade.service
|
||||||
|
sudo systemctl disable apt-daily.timer apt-daily-upgrade.timer
|
||||||
|
|
||||||
|
sudo systemctl disable NetworkManager-wait-online.service
|
||||||
|
sudo systemctl disable systemd-random-seed.service
|
||||||
|
|
||||||
|
sudo systemctl disable e2scrub_reap.service
|
||||||
|
sudo systemctl disable systemd-networkd-wait-online.service
|
||||||
|
|
||||||
|
sudo systemctl disable lvm2-monitor.service
|
||||||
|
|
||||||
|
sudo systemctl disable snapd.seeded.service
|
||||||
|
sudo systemctl disable pppd-dns.service
|
||||||
|
|
||||||
|
sudo systemctl disable avahi-daemon.service
|
||||||
|
sudo systemctl disable ModemManager.service
|
||||||
|
|
||||||
|
sudo systemctl disable apport.service
|
||||||
|
sudo systemctl mask apport.service
|
||||||
|
sudo systemctl disable accounts-daemon.service
|
||||||
|
sudo systemctl mask accounts-daemon.service
|
||||||
|
sudo systemctl disable udisks2.service
|
||||||
|
```
|
||||||
|
|
||||||
|
### faster login
|
||||||
|
```
|
||||||
|
All scripts in /etc/update-motd.d/ transferred to other place or just deleted them all
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install devterm related package
|
||||||
|
```
|
||||||
|
curl https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo tee /etc/apt/trusted.gpg.d/clockworkpi.asc
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
|
||||||
|
apt update
|
||||||
|
|
||||||
|
apt install devterm-audio-patch devterm-backlight-cpi devterm-keyboard-firmware devterm-thermal-printer devterm-thermal-printer-cups devterm-wiringpi-cpi
|
||||||
|
```
|
||||||
|
|
||||||
|
## Get out chroot
|
||||||
|
|
||||||
|
```
|
||||||
|
exit
|
||||||
|
cd
|
||||||
|
|
||||||
|
sudo umount /mnt/p4/dev/pts
|
||||||
|
sudo umount /mnt/p4/dev/
|
||||||
|
sudo umount /mnt/p4/proc
|
||||||
|
sudo umount /mnt/p4/sys
|
||||||
|
sudo umount /mnt/p4/boot
|
||||||
|
|
||||||
|
sudo umount /mnt/p3
|
||||||
|
sudo umount /mnt/p2
|
||||||
|
sudo umount /mnt/p4
|
||||||
|
|
||||||
|
sudo losetup -D /dev/loop1
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Final part
|
||||||
|
|
||||||
|
now we have a chroot edited os image file disk.img in 16GB with ubuntu devel branch root fs
|
||||||
|
|
||||||
|
you can still use
|
||||||
|
```
|
||||||
|
sudo losetup --show -f -P disk.img
|
||||||
|
sudo gparted /dev/loop1
|
||||||
|
```
|
||||||
|
to shrink the disk size to be like 8G or less to fit your sd card
|
||||||
|
|
||||||
|
then dd it into sd card
|
||||||
|
|
||||||
|
|
||||||
|
# Compiling other stuff
|
||||||
|
|
||||||
|
## WiringPI
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
wget https://github.com/WiringPi/WiringPi/archive/refs/tags/final_official_2.50.tar.gz
|
||||||
|
tar zxvf final_official_2.50.tar.gz
|
||||||
|
cd WiringPi-final_official_2.50/
|
||||||
|
cp ../DevTerm/Code/patch/d1/wiringCP0329.patch .
|
||||||
|
git apply wiringCP0329.patch
|
||||||
|
sudo ./build
|
||||||
|
#Choice: 2
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# For apt upgrade
|
||||||
|
|
||||||
|
apt upgrade on R01 os will mess up the content of extlinux.conf
|
||||||
|
lead the boot failed
|
||||||
|
|
||||||
|
so mount the sd card(with R01 os) on a PC (like Linux )
|
||||||
|
|
||||||
|
then go into the **boot partition** of the sd card
|
||||||
|
|
||||||
|
you will see
|
||||||
|
```
|
||||||
|
extlinux.conf
|
||||||
|
extlinux.conf.cpi.bak
|
||||||
|
```
|
||||||
|
replace extlinux.conf with extlinux.conf.cpi.bak
|
||||||
|
|
||||||
|
the **extlinux.conf.cpi.bak** is for this kind of situation
|
||||||
|
|
||||||
|
# Hints
|
||||||
|
https://forum.clockworkpi.com/t/r01-os-early-hints/8636
|
||||||
33
wiki/DevTerm-A06-Install-ibus-input-method.md
Normal file
33
wiki/DevTerm-A06-Install-ibus-input-method.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
`sudo apt install ibus ibus-pinyin -y`
|
||||||
|
```
|
||||||
|
cat <<EOF >~/.config/autostart/ibus.desktop
|
||||||
|
[Desktop Entry]
|
||||||
|
Exec=ibus-daemon -drxR
|
||||||
|
GenericName=IBus
|
||||||
|
Name[zh_CN]=IBus
|
||||||
|
Name=IBus
|
||||||
|
Name[en_US]=IBus
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/profile.d/ibus.sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export XIM_PROGRAM=ibus
|
||||||
|
export XIM=ibus
|
||||||
|
export XMODIFIERS=@im=ibus
|
||||||
|
export GTK_IM_MODULE=ibus
|
||||||
|
export QT_IM_MODULE=ibus
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
`sudo reboot `
|
||||||
|
|
||||||
|
Then right-click the ibus icon in the upper right corner of the top menu
|
||||||
|
select preferences
|
||||||
|
add (Add) **pinyin** input method, the default is super+space to enable the input method
|
||||||
|
you can change the shortcut in **iBus Preferences**
|
||||||
78
wiki/Devterm-CM3-rpi-os-image.md
Normal file
78
wiki/Devterm-CM3-rpi-os-image.md
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
### Orginal image download URL
|
||||||
|
https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-full.zip
|
||||||
|
|
||||||
|
|
||||||
|
#### Modification request list
|
||||||
|
- [x] screen rotation for xrandr,fbcon,lightdm
|
||||||
|
- [x] Remove the wallpaper and change the solid color #202020
|
||||||
|
- [x] Install all rpi-related debs in the apt source
|
||||||
|
|
||||||
|
#### Packages in devterm apt source
|
||||||
|
1. devterm-audio-patch (check whether the 3.5 audio interface is plugged in, pull up a certain GPIO)
|
||||||
|
1. devterm-fan-temp-daemon-rpi (detect the temperature of rpi, raise the io drive fan, written in python)
|
||||||
|
1. devterm-kernel-rpi (modified kernel, 4.x series)
|
||||||
|
1. devterm-keyboard-firmware (Devterm keyboard firmware flashing tool, Advanced users only!)
|
||||||
|
1. devterm-thermal-printer (thermal printer program and systemd scripts)
|
||||||
|
1. devterm-thermal-printer-cups (CUPS filter for the thermal printer, and add the thermal printer to cups, so devterm printer can be seen in chromium)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### Add clockworkpi to apt source list
|
||||||
|
see https://github.com/clockworkpi/apt/tree/main/debian
|
||||||
|
```
|
||||||
|
wget -O - https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo apt-key add -
|
||||||
|
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Config xrandr
|
||||||
|
```
|
||||||
|
sudo bash -c 'cat << EOF > etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Config lightdm
|
||||||
|
in `/etc/lightdm/lightdm.conf`
|
||||||
|
```
|
||||||
|
greeter-setup-script=/etc/lightdm/setup.sh
|
||||||
|
```
|
||||||
|
*setup.sh*
|
||||||
|
```
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
```
|
||||||
|
`sudo chmod +x etc/lightdm/setup.sh`
|
||||||
|
|
||||||
|
|
||||||
|
##### Modify /etc/dphys-swapfile
|
||||||
|
```
|
||||||
|
CONF_SWAPSIZE=512
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Change the default wallpaper
|
||||||
|
The following files changed
|
||||||
|
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
* /etc/xdg/pcmanfm/LXDE-pi/desktop-items-1.conf
|
||||||
|
* /etc/lightdm/pi-greeter.conf
|
||||||
|
* /home/pi/.config/pcmanfm/LXDE-pi/desktop-items-0.conf
|
||||||
|
|
||||||
|
Delete wallpaper address `temple.jpg`
|
||||||
|
Modify the `desktop_bg` color to `#202020`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### config.txt
|
||||||
|
|
||||||
|
Add `dtparam=audio=on` to solve the problem of no sound card under HDMI
|
||||||
|
|
||||||
|
##### /etc/hostname to clockworkpi
|
||||||
|
|
||||||
|
##### /boot/cmdline.txt ,add fbcon=rotate:1, remove quiet
|
||||||
|
|
||||||
|
### Image download url
|
||||||
|
https://forum.clockworkpi.com/t/devterm-os-cm3-image-files/7151/1
|
||||||
|
|
||||||
83
wiki/Devterm-CM3-ubuntu-server-image.md
Normal file
83
wiki/Devterm-CM3-ubuntu-server-image.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
### Img file
|
||||||
|
|
||||||
|
[ubuntu-21.04-preinstalled-server-armhf+raspi.img](https://cdimage.ubuntu.com/releases/21.04/release/ubuntu-21.04-preinstalled-server-armhf+raspi.img.xz)
|
||||||
|
|
||||||
|
### Prepare
|
||||||
|
Edit /boot/cmdline.txt and /etc/fstab of this img
|
||||||
|
**/boot/cmdline.txt**
|
||||||
|
```
|
||||||
|
console=serial0,115200 console=tty1 root=PARTUUID=78e1086a-02 rootfstype=ext4 elevator=deadline rootwait fixrtc splash fbcon=rotate:1
|
||||||
|
```
|
||||||
|
to use HDMI console,consider to remove **fbcon=rotate:1** in `/boot/cmdline.txt`
|
||||||
|
|
||||||
|
**/etc/fstab**
|
||||||
|
```
|
||||||
|
PARTUUID=78e1086a-02 / ext4 discard,errors=remount-ro 0 1
|
||||||
|
PARTUUID=78e1086a-01 /boot/ vfat defaults 0 1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Enter chroot
|
||||||
|
```
|
||||||
|
sudo losetup -P /dev/loop10 ubuntu-21.04-preinstalled-server-armhf+raspi.img
|
||||||
|
sudo mount /dev/loop10p2 /mnt/p2
|
||||||
|
sudo mount /dev/loop10p1 /mnt/p2/boot
|
||||||
|
cd /mnt/p2
|
||||||
|
sudo mount --bind /dev dev/
|
||||||
|
sudo mount --bind /sys sys/
|
||||||
|
sudo mount --bind /proc proc/
|
||||||
|
sudo mount --bind /dev/pts dev/pts
|
||||||
|
|
||||||
|
sudo chroot .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Inside chroot
|
||||||
|
```
|
||||||
|
sudo unlink /etc/resolv.conf
|
||||||
|
echo -en "nameserver 1.1.1.1\nnameserver 8.8.8.8\n" > /etc/resolv.conf
|
||||||
|
|
||||||
|
sudo apt remove linux-image-raspi linux-image-5.11.0-1007-raspi -y
|
||||||
|
sudo apt install net-tools network-manager -y
|
||||||
|
|
||||||
|
wget -O - https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo apt-key add
|
||||||
|
echo "deb https://raw.githubusercontent.com/clockworkpi/apt/main/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/clockworkpi.list
|
||||||
|
sudo apt update && sudo apt install devterm-thermal-printer devterm-keyboard-firmware devterm-fan-temp-daemon-rpi devterm-thermal-printer-cups devterm-kernel-rpi devterm-audio-patch devterm-backlight-rpi -y
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir /etc/lightdm/lightdm.conf.d/ -p
|
||||||
|
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/lightdm.conf.d/99-cpi.conf
|
||||||
|
[SeatDefaults]
|
||||||
|
|
||||||
|
greeter-setup-script=/etc/lightdm/setup.sh
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
sudo bash -c 'cat <<EOF >/etc/lightdm/setup.sh
|
||||||
|
#!/bin/bash
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
exit 0
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
sudo chmod +x /etc/lightdm/setup.sh
|
||||||
|
|
||||||
|
sudo bash -c 'cat << EOF > /etc/X11/Xsession.d/100custom_xrandr
|
||||||
|
xrandr --output DSI-1 --rotate right
|
||||||
|
EOF'
|
||||||
|
```
|
||||||
|
|
||||||
|
`sudo apt-get install tasksel`
|
||||||
|
|
||||||
|
`sudo cp -f /lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt /lib/firmware/brcm/brcmfmac43456-sdio.txt`
|
||||||
|
|
||||||
|
`sudo apt install wiringpi`
|
||||||
|
`sudo ln -s /lib/arm-linux-gnueabihf/libwiringPi.so.2 /lib/arm-linux-gnueabihf/libwiringPi.so`
|
||||||
|
|
||||||
|
### Outside chroot
|
||||||
|
|
||||||
|
dd img to sd card
|
||||||
|
power on CM3
|
||||||
|
config the network
|
||||||
|
|
||||||
|
`sudo tasksel` to select desktop env to install
|
||||||
|
|
||||||
19
wiki/Devterm-CM4-GPIO-map.md
Normal file
19
wiki/Devterm-CM4-GPIO-map.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
The GPIO on cm4 is different
|
||||||
|
|
||||||
|
| old | new |
|
||||||
|
|-----|-----|
|
||||||
|
| 28 | 18 |
|
||||||
|
| 29 | 19 |
|
||||||
|
| 30 | 20 |
|
||||||
|
| 31 | 21 |
|
||||||
|
| 32 | 14 |
|
||||||
|
| 33 | 15 |
|
||||||
|
| 34 | 24 |
|
||||||
|
| 35 | 25 |
|
||||||
|
| 36 | 26 |
|
||||||
|
| 37 | 27 |
|
||||||
|
| 38 | 6 |
|
||||||
|
| 39 | 7 |
|
||||||
|
| 40 | 16 |
|
||||||
|
| 41 | 17 |
|
||||||
|
| 43 | 23 |
|
||||||
71
wiki/Guide-To-Setup-thermal-printer-from-source-code.md
Normal file
71
wiki/Guide-To-Setup-thermal-printer-from-source-code.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Prepare
|
||||||
|
Before everything
|
||||||
|
We assume that you have a Devterm with stock os running
|
||||||
|
and a little bit of Linux compiling experience
|
||||||
|
know how to install packages by package manager like apt
|
||||||
|
|
||||||
|
## WiringPi
|
||||||
|
### CM3 or CM4
|
||||||
|
```
|
||||||
|
sudo apt install -y wiringpi libwiringpi-dev libcups2-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### A06 A04
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
cd DevTerm/Code/devterm_wiringpi_cpi/
|
||||||
|
sudo ./build
|
||||||
|
#chose 0 or 1 depend which board you have
|
||||||
|
```
|
||||||
|
|
||||||
|
### R01
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
wget https://github.com/WiringPi/WiringPi/archive/refs/tags/final_official_2.50.tar.gz
|
||||||
|
tar zxvf final_official_2.50.tar.gz
|
||||||
|
cd WiringPi-final_official_2.50/
|
||||||
|
cp ../DevTerm/Code/patch/d1/wiringCP0329.patch .
|
||||||
|
git apply wiringCP0329.patch
|
||||||
|
sudo ./build
|
||||||
|
#Choice: 2
|
||||||
|
```
|
||||||
|
|
||||||
|
# Compile thermal printer driver code
|
||||||
|
```
|
||||||
|
git clone https://github.com/clockworkpi/DevTerm.git
|
||||||
|
cd DevTerm/Code/thermal_printer
|
||||||
|
make
|
||||||
|
sudo systemctl stop devterm-printer
|
||||||
|
sudo cp -rf devterm_thermal_printer.elf /usr/local/bin
|
||||||
|
sudo systemctl start devterm-printer
|
||||||
|
```
|
||||||
|
## Debug or run it from manually
|
||||||
|
1. setup socat socket for data receving for thermal printer
|
||||||
|
```
|
||||||
|
sudo systemctl stop devterm-printer #stop service
|
||||||
|
sudo systemctl stop devterm-socat #stop service
|
||||||
|
sudo socat -d -d pty,link=/tmp/DEVTERM_PRINTER_OUT,raw,echo=0 pty,link=/tmp/DEVTERM_PRINTER_IN,raw,echo=0
|
||||||
|
sudo ./usr/local/bin/devterm_socat.sh # <- this .sh file is in DevTerm/Code/thermal_printer/usr/local/bin/
|
||||||
|
```
|
||||||
|
1. run devterm_thermal_printer.elf
|
||||||
|
```
|
||||||
|
sudo ./devterm_thermal_printer.elf
|
||||||
|
```
|
||||||
|
|
||||||
|
now you can test the printer by cat or echo something into `/tmp/DEVTERM_PRINTER_IN`
|
||||||
|
eg: `echo "hello world\n\n\n\n\n\n\n\n\n\n" > /tmp/DEVTERM_PRINTER_IN
|
||||||
|
|
||||||
|
we recommend use [tmux](https://github.com/tmux/tmux/wiki) to do this job
|
||||||
|
so that you can run and see all the commands output in a single terminal window
|
||||||
|
|
||||||
|
## For CUPS
|
||||||
|
just install `devterm-thermal-printer-cups`
|
||||||
|
``` sudo apt install devterm-thermal-printer-cups```
|
||||||
|
|
||||||
|
this package will add a CUPS serial printer adapter,a CUPS filter for the DevTerm's thermal printer
|
||||||
|
and will let other programs to print content through image printing using DevTerm's thermal printer
|
||||||
|
source code is in https://github.com/clockworkpi/DevTerm/tree/main/Code/devterm_thermal_printer_cups
|
||||||
|
|
||||||
|
all devterm related deb packages available at
|
||||||
|
|
||||||
|
https://github.com/clockworkpi/apt
|
||||||
6
wiki/Home.md
Normal file
6
wiki/Home.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Welcome to the DevTerm wiki!
|
||||||
|
|
||||||
|
If you want to edit the wiki, just clone https://github.com/clockworkpi/DevTerm, and add markdown files to the **wiki** folder
|
||||||
|
|
||||||
|
Then Send Pull Request , once got merged, wiki will be shown at https://github.com/clockworkpi/DevTerm/wiki
|
||||||
|
|
||||||
26
wiki/How-to-Compile-cool-retro-term-for-DevTerm.md
Normal file
26
wiki/How-to-Compile-cool-retro-term-for-DevTerm.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# cool-retro-term
|
||||||
|
|
||||||
|
### Install the necessary packages:
|
||||||
|
#### CM3
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
|
||||||
|
```
|
||||||
|
#### ubuntu (A06)
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install build-essential qmlscene qt5-qmake qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
|
||||||
|
```
|
||||||
|
### Compile (it takes about 30 minutes):
|
||||||
|
```
|
||||||
|
cd ~
|
||||||
|
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
|
||||||
|
cd cool-retro-term
|
||||||
|
git reset --hard dac2b4
|
||||||
|
qmake && make
|
||||||
|
cp -r qmltermwidget/src/qmldir qmltermwidget/lib/kb-layouts qmltermwidget/lib/color-schemes qmltermwidget/src/QMLTermScrollbar.qml qmltermwidget/QMLTermWidget
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run
|
||||||
|
|
||||||
|
`./cool-retro-term --fullscreen`
|
||||||
54
wiki/How-to-compile-DevTerm-CM3-Kernel.md
Normal file
54
wiki/How-to-compile-DevTerm-CM3-Kernel.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
## Env
|
||||||
|
VirtualBox with ubuntu 20.04
|
||||||
|
|
||||||
|
## Toolchain
|
||||||
|
|
||||||
|
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin
|
||||||
|
|
||||||
|
|
||||||
|
## Get kernel
|
||||||
|
1. git clone https://github.com/raspberrypi/linux.git
|
||||||
|
1. cd linux
|
||||||
|
1. git checkout remotes/origin/rpi-4.19.y
|
||||||
|
1. git reset --hard cc39f1c9f82f6fe5a437836811d906c709e0661c
|
||||||
|
1. git apply [devterm-4.19_v0.1.patch](https://raw.githubusercontent.com/clockworkpi/DevTerm/main/Code/kernel/devterm-4.19_v0.1.patch)
|
||||||
|
|
||||||
|
|
||||||
|
## Compile
|
||||||
|
```
|
||||||
|
KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
|
||||||
|
KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j3
|
||||||
|
export INSTALL_MOD_PATH=./modules
|
||||||
|
rm -rf $INSTALL_MOD_PATH
|
||||||
|
make modules_install
|
||||||
|
rm $INSTALL_MOD_PATH/lib/modules/*/build
|
||||||
|
rm $INSTALL_MOD_PATH/lib/modules/*/source
|
||||||
|
```
|
||||||
|
|
||||||
|
## copy kernel to SD card
|
||||||
|
$1 is the sd card location (mount point)
|
||||||
|
```
|
||||||
|
export INSTALL_MOD_PATH=./modules
|
||||||
|
sudo cp -r $INSTALL_MOD_PATH/lib/modules $1/rootfs/lib/
|
||||||
|
cat config_a >> $1/boot/config.txt
|
||||||
|
cp arch/arm/boot/zImage $1/boot/kernel7.img
|
||||||
|
cp arch/arm/boot/dts/bcm2710-rpi-cm3.dtb $1/boot/bcm2710-rpi-cm3.dtb
|
||||||
|
cp arch/arm/boot/dts/overlays/*.dtbo $1/boot/overlays/
|
||||||
|
```
|
||||||
|
|
||||||
|
## config_a
|
||||||
|
```
|
||||||
|
ignore_lcd=1
|
||||||
|
dtoverlay=vc4-kms-v3d,audio=0,cma-384
|
||||||
|
dtoverlay=devterm-pmu
|
||||||
|
dtoverlay=devterm-panel
|
||||||
|
dtoverlay=devterm-wifi
|
||||||
|
dtoverlay=devterm-bt
|
||||||
|
dtoverlay=devterm-misc
|
||||||
|
gpio=5=op,dh
|
||||||
|
gpio=9=op,dh
|
||||||
|
gpio=10=ip,np
|
||||||
|
gpio=11=op,dh
|
||||||
|
|
||||||
|
enable_uart=1
|
||||||
|
```
|
||||||
25
wiki/Keyboard-with-FPC-60pin-0.5mm.md
Normal file
25
wiki/Keyboard-with-FPC-60pin-0.5mm.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
usb-serial | keyboard IO number | keyboard IO register
|
||||||
|
-- | -- | --
|
||||||
|
3v3 | 3 | 3v3
|
||||||
|
TXD | 16 | PA10
|
||||||
|
RXD | 15 | PA9
|
||||||
|
GND | 1 | GND
|
||||||
|
|
||||||
|
|
||||||
|
USB | keyboard IO number | keyboard IO register
|
||||||
|
-- | -- | --
|
||||||
|
5v power | 5 | 5v
|
||||||
|
GND | 22 | GND
|
||||||
|
data + | 18 | PA12(USB_DP)
|
||||||
|
data - | 17 | PA11(USB_DM)
|
||||||
|
|
||||||
|
can not have USB and usb-serial both ON
|
||||||
|
sudo stm32flash -r devterm.kbd.0.3_48mhz.bin -S 0x08000000:65536 /dev/ttyUSB0
|
||||||
|
srec_cat devterm.kbd.0.3_48mhz.bin -Binary -offset 0x08000000 -output devterm.kbd.0.3_48mhz.hex -Intel
|
||||||
|
|
||||||
|
stm32flash -w devterm_kbd.bin -v -S 0x08000000 /dev/ttyUSB0
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
328
wiki/nmcli-with-gsm.md
Normal file
328
wiki/nmcli-with-gsm.md
Normal file
@ -0,0 +1,328 @@
|
|||||||
|
4G modem
|
||||||
|
# Packages
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt install -y modemmmanager network-manager pppoe
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Power ON 4G ext(uconsole)
|
||||||
|
```
|
||||||
|
echo "pulling up gpio 34"
|
||||||
|
sudo gpio mode 34 out
|
||||||
|
sudo gpio write 34 1
|
||||||
|
|
||||||
|
echo "pulling up 33 to reset "
|
||||||
|
sudo gpio mode 33 out
|
||||||
|
sudo gpio write 33 1
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
sudo gpio write 33 0
|
||||||
|
echo "pulling back 33"
|
||||||
|
sleep 10
|
||||||
|
echo "done"
|
||||||
|
|
||||||
|
```
|
||||||
|
## cm4 version
|
||||||
|
```
|
||||||
|
sudo gpio mode 24 out
|
||||||
|
sudo gpio write 24 1
|
||||||
|
|
||||||
|
sudo gpio mode 15 out
|
||||||
|
sudo gpio write 15 1
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
sudo gpio write 15 0
|
||||||
|
```
|
||||||
|
|
||||||
|
## devterm 4G module
|
||||||
|
POWER 42
|
||||||
|
RESET 43
|
||||||
|
|
||||||
|
# Power OFF 4G ext(uconsole)
|
||||||
|
|
||||||
|
```
|
||||||
|
echo "Power off 4G module"
|
||||||
|
sudo gpio mode 34 out
|
||||||
|
sudo gpio write 34 0
|
||||||
|
|
||||||
|
sudo gpio write 34 1
|
||||||
|
sleep 3
|
||||||
|
sudo gpio write 34 0
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
echo "Done"
|
||||||
|
```
|
||||||
|
|
||||||
|
## cm4 version
|
||||||
|
```
|
||||||
|
echo "Power off 4G module"
|
||||||
|
sudo gpio mode 24 out
|
||||||
|
sudo gpio write 24 0
|
||||||
|
|
||||||
|
sudo gpio write 24 1
|
||||||
|
sleep 3
|
||||||
|
sudo gpio write 24 0
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
echo "Done"
|
||||||
|
```
|
||||||
|
|
||||||
|
## List modem
|
||||||
|
```
|
||||||
|
mmcli -L
|
||||||
|
```
|
||||||
|
|
||||||
|
/org/freedesktop/ModemManager1/Modem/0 [QUALCOMM INCORPORATED] SIMCOM_SIM7600G-H
|
||||||
|
|
||||||
|
## Enable modem
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 - e
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to use nmcli to create a NetworkManager 4G connection
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo nmcli c add type gsm ifname cdc-wdm0 con-name 4GNet apn yourapn gsm.username gsmusername gsm.password gsmpassword
|
||||||
|
```
|
||||||
|
|
||||||
|
replace **yourapn** and **gsmusername** with your carrier service
|
||||||
|
|
||||||
|
then we can see a `4GNet` in NetworkManager (like KDE's network manager UI)
|
||||||
|
|
||||||
|
I got the cdc-wdm0 from with **qmi_wwan** driver
|
||||||
|
```
|
||||||
|
mmcli -m 0 | grep "primary port"
|
||||||
|
```
|
||||||
|
it will be **ttyUSB2** if use **qcdm** driver
|
||||||
|
|
||||||
|
|
||||||
|
Now we can use **nmtui** to connect 4GNet
|
||||||
|
or
|
||||||
|
```
|
||||||
|
sudo nmcli connection up 4GNet
|
||||||
|
sudo nmcli connection down 4GNet
|
||||||
|
```
|
||||||
|
if everything is right ,you will have your **ppp0** in `sudo ifconfig`
|
||||||
|
|
||||||
|
Here is reference arguments I've used for nmcli
|
||||||
|
|
||||||
|
```
|
||||||
|
connection.id: Movistar
|
||||||
|
connection.uuid: acab2207-347a-424c-b366-b2c4ef4e4c75
|
||||||
|
connection.stable-id: --
|
||||||
|
connection.type: gsm
|
||||||
|
connection.interface-name: ttyAMA0
|
||||||
|
connection.autoconnect: no
|
||||||
|
connection.autoconnect-priority: 0
|
||||||
|
connection.autoconnect-retries: -1 (default)
|
||||||
|
connection.multi-connect: 0 (default)
|
||||||
|
connection.auth-retries: -1
|
||||||
|
connection.timestamp: 0
|
||||||
|
connection.read-only: no
|
||||||
|
connection.permissions: --
|
||||||
|
connection.zone: --
|
||||||
|
connection.master: --
|
||||||
|
connection.slave-type: --
|
||||||
|
connection.autoconnect-slaves: -1 (default)
|
||||||
|
connection.secondaries: --
|
||||||
|
connection.gateway-ping-timeout: 0
|
||||||
|
connection.metered: unknown
|
||||||
|
connection.lldp: default
|
||||||
|
connection.mdns: -1 (default)
|
||||||
|
connection.llmnr: -1 (default)
|
||||||
|
ipv4.method: auto
|
||||||
|
ipv4.dns: --
|
||||||
|
ipv4.dns-search: --
|
||||||
|
ipv4.dns-options: ""
|
||||||
|
ipv4.dns-priority: 0
|
||||||
|
ipv4.addresses: --
|
||||||
|
ipv4.gateway: --
|
||||||
|
ipv4.routes: --
|
||||||
|
ipv4.route-metric: -1
|
||||||
|
ipv4.route-table: 0 (unspec)
|
||||||
|
ipv4.ignore-auto-routes: no
|
||||||
|
ipv4.ignore-auto-dns: no
|
||||||
|
ipv4.dhcp-client-id: --
|
||||||
|
ipv4.dhcp-timeout: 0 (default)
|
||||||
|
ipv4.dhcp-send-hostname: yes
|
||||||
|
ipv4.dhcp-hostname: --
|
||||||
|
ipv4.dhcp-fqdn: --
|
||||||
|
ipv4.never-default: no
|
||||||
|
ipv4.may-fail: yes
|
||||||
|
ipv4.dad-timeout: -1 (default)
|
||||||
|
ipv6.method: auto
|
||||||
|
ipv6.dns: --
|
||||||
|
ipv6.dns-search: --
|
||||||
|
ipv6.dns-options: ""
|
||||||
|
ipv6.dns-priority: 0
|
||||||
|
ipv6.addresses: --
|
||||||
|
ipv6.gateway: --
|
||||||
|
ipv6.routes: --
|
||||||
|
ipv6.route-metric: -1
|
||||||
|
ipv6.route-table: 0 (unspec)
|
||||||
|
ipv6.ignore-auto-routes: no
|
||||||
|
ipv6.ignore-auto-dns: no
|
||||||
|
ipv6.never-default: no
|
||||||
|
ipv6.may-fail: yes
|
||||||
|
ipv6.ip6-privacy: -1 (unknown)
|
||||||
|
ipv6.addr-gen-mode: stable-privacy
|
||||||
|
ipv6.dhcp-duid: --
|
||||||
|
ipv6.dhcp-send-hostname: yes
|
||||||
|
ipv6.dhcp-hostname: --
|
||||||
|
ipv6.token: --
|
||||||
|
serial.baud: 115200
|
||||||
|
serial.bits: 8
|
||||||
|
serial.parity: none
|
||||||
|
serial.stopbits: 1
|
||||||
|
serial.send-delay: 0
|
||||||
|
ppp.noauth: yes
|
||||||
|
ppp.refuse-eap: no
|
||||||
|
ppp.refuse-pap: no
|
||||||
|
ppp.refuse-chap: no
|
||||||
|
ppp.refuse-mschap: no
|
||||||
|
ppp.refuse-mschapv2: no
|
||||||
|
ppp.nobsdcomp: no
|
||||||
|
ppp.nodeflate: no
|
||||||
|
ppp.no-vj-comp: no
|
||||||
|
ppp.require-mppe: no
|
||||||
|
ppp.require-mppe-128: no
|
||||||
|
ppp.mppe-stateful: no
|
||||||
|
ppp.crtscts: no
|
||||||
|
ppp.baud: 115200
|
||||||
|
ppp.mru: 0
|
||||||
|
ppp.mtu: auto
|
||||||
|
ppp.lcp-echo-failure: 0
|
||||||
|
ppp.lcp-echo-interval: 0
|
||||||
|
gsm.number: *99#
|
||||||
|
gsm.username: --
|
||||||
|
gsm.password: <hidden>
|
||||||
|
gsm.password-flags: 0 (none)
|
||||||
|
gsm.apn: internet.movistar.com.co
|
||||||
|
gsm.network-id: --
|
||||||
|
gsm.pin: <hidden>
|
||||||
|
gsm.pin-flags: 0 (none)
|
||||||
|
gsm.home-only: no
|
||||||
|
gsm.device-id: --
|
||||||
|
gsm.sim-id: --
|
||||||
|
gsm.sim-operator-id: --
|
||||||
|
gsm.mtu: auto
|
||||||
|
proxy.method: none
|
||||||
|
proxy.browser-only: no
|
||||||
|
proxy.pac-url: --
|
||||||
|
proxy.pac-script: --
|
||||||
|
```
|
||||||
|
|
||||||
|
if nmcli can not start the gsm connection with errors like Ipv4 stack ,dual-stack addressing not supported by the modem
|
||||||
|
that means we need to re-compile the kernel
|
||||||
|
|
||||||
|
requires all ppp driver in kernel
|
||||||
|
**Devices drivers ->Network device support**
|
||||||
|
and compile as *, not module
|
||||||
|
|
||||||
|
```
|
||||||
|
Linux Kernel Configuration
|
||||||
|
└─> Device Drivers
|
||||||
|
└─> USB support
|
||||||
|
└─> USB Wireless Device Management support
|
||||||
|
as module
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
Linux Kernel Configuration
|
||||||
|
└─> Device Drivers
|
||||||
|
└─> Network device support
|
||||||
|
└─> USB Network Adapters
|
||||||
|
└─> QMI WWAN driver for Qualcomm MSM based 3G and LTE modems
|
||||||
|
|
||||||
|
as module
|
||||||
|
```
|
||||||
|
|
||||||
|
on A06
|
||||||
|
```
|
||||||
|
sudo apt install pppoe
|
||||||
|
```
|
||||||
|
|
||||||
|
## In order to use SIMCOM_SIM7600G-H to call or receive calls
|
||||||
|
we have to blacklist some kernel modules
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cat /etc/modprobe.d/blacklist-qmi.conf
|
||||||
|
blacklist qmi_wwan
|
||||||
|
blacklist cdc_wdm
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
mmcli -m 0 --messaging-list-sms
|
||||||
|
|
||||||
|
mmcli -m 0 --voice-list-calls
|
||||||
|
|
||||||
|
mmcli -m 0 --voice-create-call='number=xxxxxxxxxxxx'
|
||||||
|
|
||||||
|
mmcli -m 0 --voice-list-calls
|
||||||
|
|
||||||
|
mmcli -m 0 --start -o 0
|
||||||
|
|
||||||
|
mmcli -m 0 --accept -o 1
|
||||||
|
```
|
||||||
|
|
||||||
|
# Enable ModemManager debug
|
||||||
|
change `/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service`
|
||||||
|
add --debug after `/usr/sbin/ModemManager`
|
||||||
|
```bash
|
||||||
|
...
|
||||||
|
[Service]
|
||||||
|
Type=dbus
|
||||||
|
BusName=org.freedesktop.ModemManager1
|
||||||
|
ExecStart=/usr/sbin/ModemManager --debug
|
||||||
|
StandardError=null
|
||||||
|
Restart=on-abort
|
||||||
|
...
|
||||||
|
```
|
||||||
|
Then
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl restart ModemManager.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## show audio levels
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CLVL=?"
|
||||||
|
response: '+CLVL: (0-5)'
|
||||||
|
```
|
||||||
|
## show current levels
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CLVL?"
|
||||||
|
response: '+CLVL: 4'
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CLVL=5"
|
||||||
|
response: ''
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CLVL=10"
|
||||||
|
error: command failed: 'GDBus.Error:org.freedesktop.ModemManager1.Error.MobileEquipment.Unknown: Unknown error'
|
||||||
|
```
|
||||||
|
|
||||||
|
## mute mic
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CMUT=?"
|
||||||
|
response: '+CMUT: (0-1)'
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo mmcli -m 0 --command "AT+CMUT?"
|
||||||
|
response: '+CMUT: 0'
|
||||||
|
```
|
||||||
|
```
|
||||||
|
Mute (but may need to be used during a call)
|
||||||
|
sudo mmcli -m 0 --command "AT+CMUT=1"
|
||||||
|
```
|
||||||
|
|
||||||
|
no ring volume
|
||||||
|
|
||||||
|
## Test signal
|
||||||
|
```
|
||||||
|
sudo mmcli -m any --signal-setup=10 # 10secs to refresh
|
||||||
|
sudo mmcli -m any # to see signal quality
|
||||||
|
```
|
||||||
Loading…
x
Reference in New Issue
Block a user