2026年1月6日 星期二

Slimblade pro on ubuntu 22.04

top left to be a toggle button to turn the whole ball into a scroll wheel.
$ gsettings list-recursively org.gnome.desktop.peripherals
org.gnome.desktop.peripherals.keyboard delay uint32 500
org.gnome.desktop.peripherals.keyboard numlock-state false
org.gnome.desktop.peripherals.keyboard remember-numlock-state true
org.gnome.desktop.peripherals.keyboard repeat true
org.gnome.desktop.peripherals.keyboard repeat-interval uint32 30
org.gnome.desktop.peripherals.mouse accel-profile 'default'
org.gnome.desktop.peripherals.mouse double-click 400
org.gnome.desktop.peripherals.mouse drag-threshold 8
org.gnome.desktop.peripherals.mouse left-handed false
org.gnome.desktop.peripherals.mouse middle-click-emulation false
org.gnome.desktop.peripherals.mouse natural-scroll false
org.gnome.desktop.peripherals.mouse speed 0.0
org.gnome.desktop.peripherals.tablet area [0.0, 0.0, 0.0, 0.0]
org.gnome.desktop.peripherals.tablet keep-aspect false
org.gnome.desktop.peripherals.tablet left-handed false
org.gnome.desktop.peripherals.tablet mapping 'absolute'
org.gnome.desktop.peripherals.tablet output ['', '', '']
org.gnome.desktop.peripherals.touchpad click-method 'default'
org.gnome.desktop.peripherals.touchpad disable-while-typing true
org.gnome.desktop.peripherals.touchpad edge-scrolling-enabled false
org.gnome.desktop.peripherals.touchpad left-handed 'mouse'
org.gnome.desktop.peripherals.touchpad middle-click-emulation false
org.gnome.desktop.peripherals.touchpad natural-scroll true
org.gnome.desktop.peripherals.touchpad send-events 'disabled'
org.gnome.desktop.peripherals.touchpad speed 0.0
org.gnome.desktop.peripherals.touchpad tap-and-drag true
org.gnome.desktop.peripherals.touchpad tap-and-drag-lock false
org.gnome.desktop.peripherals.touchpad tap-button-map 'default'
org.gnome.desktop.peripherals.touchpad tap-to-click true
org.gnome.desktop.peripherals.touchpad two-finger-scrolling-enabled true
org.gnome.desktop.peripherals.touchscreen output ['', '', '']
org.gnome.desktop.peripherals.trackball accel-profile 'default'
org.gnome.desktop.peripherals.trackball middle-click-emulation false
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 0
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button-lock false

setting
//set
$ gsettings set org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 2
$ gsettings set org.gnome.desktop.peripherals.trackball svroll-wheel-emulation-button-lock true


$ gsettings list-recursively org.gnome.desktop.peripherals
...
...
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 2
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button-lock true

ref:
SlimBlade Linux config

find duplicates IMEI


find_duplicates.py by Gemini

import sys

def process_imeis(input_filename):
    seen = set()
    duplicates = set()
    output_filename = "unique_results.txt"
    
    try:
        # Step 1: Read and identify duplicates
        with open(input_filename, 'r') as file:
            for line in file:
                imei = line.strip()
                if not imei:
                    continue
                
                if imei in seen:
                    duplicates.add(imei)
                else:
                    seen.add(imei)

        # Step 2: Save Unique IMEIs to file
        with open(output_filename, 'w') as out_file:
            for imei in sorted(seen):
                out_file.write(f"{imei}\n")

        # Step 3: Print Statistics and List Duplicates
        print(f"\n{'='*40}")
        print(f"FILE PROCESSED: {input_filename}")
        print(f"{'='*40}")
        print(f"Unique Count:    {len(seen)}")
        print(f"Duplicate Count: {len(duplicates)}")
        print(f"Unique list saved to: {output_filename}")
        print(f"{'='*40}\n")

        if duplicates:
            print("LIST OF DUPLICATE IMEIs:")
            print("-" * 25)
            # Sorting the list makes it easier to read
            for imei in sorted(duplicates):
                print(imei)
        else:
            print("No duplicate numbers were found.")

    except FileNotFoundError:
        print(f"Error: Could not find the file '{input_filename}'.")
    except PermissionError:
        print(f"Error: Permission denied when accessing files.")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python3 check_imei.py <filename.txt>")
    else:
        process_imeis(sys.argv[1])

2025年12月19日 星期五

FN920C04 auto-connected on Nvidia AGX Orin R36.3

Data structure
$ tree -L 1
.
├── apply_binaries.sh
├── bootloader
├── build_l4t_bup.sh
├── flash.sh
├── generate_capsule
├── ...
├── ...
├── kernel
├── l4t_generate_soc_bup.sh
├── l4t_sign_image.sh
├── l4t_uefi_sign_image.sh
├── ...
├── ...
├── rootfs
├── source
├── Tegra_Software_License_Agreement-Tegra-Linux.txt
└── tools

Copy the data to the rootfs, /etc/NetworkManager/system-connections/internet.nmconnection
[connection]

id=internet

uuid=996797c1-56eb-44aa-b7e2-d405ade10bdf

type=gsm

[gsm]

apn=internet

[serial]

[ppp]

[ipv4]

dns-priority=120

method=auto

route-metric=1050

[ipv6]

addr-gen-mode=stable-privacy

method=auto

[proxy]

Change root.


$ ls -alh /run/dbus/
srw-rw-rw-  1 root root    0 Dec 19 09:53 system_bus_socket

$ sudo mount -t proc /proc ./rootfs/proc
$ sudo mount -t sysfs /sys ./rootfs/sys
$ sudo mount -o bind /dev ./rootfs/dev
$ sudo mount -o bind /dev/pts ./rootfs/dev/pts
// for dbus
$ mkdir ./rootfs/run/dbus
$ sudo mount -o bind /run/dbus ./rootfs/run/dbus      //PC env: ubuntu 22.04, kernel: 6.8.0-65-generic 

$ sudo chroot ./rootfs

//enter simulator 
#nmcli connection reload

Rebuild BSP code
r363

FN920C04 should be auto-connected to the Internet
$ ifconfig wwan0
wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.231.60.110  netmask 255.255.255.252  destination 10.231.60.110
        inet6 2001:b400:e2ad:ab1:95f4:6e35:7e1a:4a5e  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 379  bytes 67264 (67.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 453  bytes 39083 (39.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        

$ mmcli -m 0
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/0
  ----------------------------------
  Hardware |           manufacturer: Telit Cinterion
           |                  model: FN920C04-WW
           |      firmware revision: M0V.060001
           |         carrier config: default
           |           h/w revision: 1.10
  ----------------------------------
  System   |                 device: /sys/devices/platform/bus@0/3610000.usb/usb1/1-4/1-4.2
           |                drivers: qmi_wwan, option
           |                 plugin: telit
           |           primary port: cdc-wdm0
           |                  ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (at),
           |                         ttyUSB2 (ignored), wwan0 (net)
  ----------------------------------
  ----------------------------------
  Status   |                   lock: sim-pin2
           |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                  state: connected
           |            power state: on
           |            access tech: lte
           |         signal quality: 100% (recent)
  ----------------------------------
  ----------------------------------
  3GPP EPS |   ue mode of operation: csps-2
           |    initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                         slot 2: none
  ----------------------------------
  Bearer   |                  paths: /org/freedesktop/ModemManager1/Bearer/1



$ mmcli -b 1
  ------------------------------------
  General            |           path: /org/freedesktop/ModemManager1/Bearer/1
                     |           type: default
  ------------------------------------
  Status             |      connected: yes
                     |      suspended: no
                     |    multiplexed: no
                     |      interface: wwan0
                     |     ip timeout: 20
  ------------------------------------
  Properties         |            apn: internet
                     |        roaming: allowed
                     |        ip type: ipv4v6
                     |   allowed-auth: none, pap, chap, mschap, mschapv2, eap
  ------------------------------------
  IPv4 configuration |         method: static
                     |        address: 10.231.60.110
                     |         prefix: 30
                     |        gateway: 10.231.60.109
                     |            dns: 168.95.1.1, 168.95.192.1
                     |            mtu: 1500
  ------------------------------------
  IPv6 configuration |         method: static
                     |        address: 2001:b400:e2ad:ab1:95f4:6e35:7e1a:4a5e
                     |         prefix: 64
                     |        gateway: 2001:b400:e2ad:ab1:f9db:c24f:25cc:9eb2
                     |            dns: 2001:b000:168::1, 2001:b000:168::2
                     |            mtu: 1500
  ------------------------------------
  Statistics         |     start date: 2025-12-19T07:08:00Z
                     |       duration: 7290
                     |       bytes rx: 71708
                     |       bytes tx: 40369
                     |       attempts: 1
                     | total-duration: 7290
                     | total-bytes rx: 71708
                     | total-bytes tx: 40369