Category Archives: Software

Roundcube và Password plugin

Password plugin cho Roundcube là một công cụ rất quan trọng, giúp người dùng tự thay đổi mật khẩu mà không phải thông qua admin của mailserver.

Đến Debian Bullseye thì plugin này đột nhiên không hoạt động với các kiểu mật khẩu mà dovecot hỗ trợ. Thông báo lỗi là không thể cất được mật khẩu.

Continue reading

Comments Off on Roundcube và Password plugin

Filed under Software

RPi bị thiếu điện

Tôi thường phải lắp thêm công tắc vào dây nguồn của RPi để tiện cho công việc.

Hiện tượng thường gặp là khi gắn HDD/SSD vào RPi thì chạy không nổi, HDD kêu cạch cạch mà không khởi động được. Tôi cho là nguồn không đủ công suất, khắc phục bằng cách dùng USB hub loại cấp nguồn riêng để nuôi HDD/SSD.

Gần đây mới phát hiện ra nguyên nhân thiếu điện là do công tắc lắp thêm vào.

Vấn đề nằm ở chổ tiếp điểm của công tắc nhỏ, tiếp xúc không tốt. Với dòng điện xoay chiều hay công suất lớn thì không ảnh hưởng gì nhiều, chỉ sinh nhiệt thôi. Với dòng điện 1 chiều công suất thấp của nguồn RPi thì dòng ở trước và sau công tắc chệnh lệch đáng kể.

Tháo bỏ công tắc thì SSD/HDD chạy bình thường không cần USB hub.

Comments Off on RPi bị thiếu điện

Filed under Software

RPi khởi động từ ổ đĩa GPT

Hệ thống GPT có thể tạo được nhiều primary partition (128) và quản lý được dung lượng lớn hơn 2TB, khắc phục được hạn chế này của hệ thống MBR.

Trước nay, để có thể boot từ ổ đĩa dung lượng lớn hơn 2TB thì phải dùng hệ thống partition lai GPT/MBR rất không ổn định. Thí dụ mất nguồn đột ngột có thể làm hỏng boot hay hệ thống GPT làm không khởi động được, thậm chí không còn nhận dạng được đĩa.

Continue reading

Comments Off on RPi khởi động từ ổ đĩa GPT

Filed under Software

Cài đặt OS trên Logical volume (II)

Tương tự bài trước, nhưng chúng ta chỉ dùng một đĩa trong cả quá trình dời rootfs sang logical volume. Thực hiện nhanh hơn và đơn giản hơn, tuy làm thủ công nhưng không mất quá 5 phút.

Không mở rộng đĩa khi khởi động lần đầu

Sau khi ghi file ảnh vào đĩa, chúng ta ngăn PiOS tự động nới rộng partition rootfs đến hết dung lượng đĩa bằng cách xóa dòng sau trong cmdline.txt

Sau đó dùng đĩa này khởi động như bình thường. Tên đĩa có thể là mmcblk0 hoặc sda … tùy khởi động ở vị trí USB nào.

Continue reading

Comments Off on Cài đặt OS trên Logical volume (II)

Filed under Software

Cài đặt OS trên Logical volume

Sau khi dùng Raspberry Pi Imager ghi file ảnh của OS vào đĩa như bình thường, chúng ta sẽ chuyển OS trên partition rootfs vào LV.

Việc chuyển phần cài đặt thì đơn giản nhưng các driver của LVM ngay khi khởi động phải được nạp để có thể làm việc với rootfs trên LV. Khi khởi động Raspberry Pi nạp một ramdisk cho initrd, vì vậy chúng ta chỉ phải bổ sung initram chứa các driver cho LVM.

Chuẩn bị

  • RPi 4
  • 2 đĩa khởi động PiOS, trong đó 1 đĩa sẽ được chuyển PiOS sang logical volume
  • Wifi

Ghi file ảnh vào đĩa

Sau khi chọn OS và đĩa (SD card), chúng ta chọn thêm phần Options bằng cách bấm vào nút hình bánh xe. Sau khi ghi file ảnh vào đĩa, Raspberry Pi Imager sẽ làm thêm vài cài đặt đã được chỉ định, bao gồm: đặt hostname, cho phép ssh, mật khẩu của pi, cài đặt wifi… Chú ý là Raspberry Pi 4 hỗ trợ wifi 5G nên nhanh hơn mạng LAN 100Mps.

Continue reading

Comments Off on Cài đặt OS trên Logical volume

Filed under Software

Đếm mail được postfix gởi đi

Mail server cài đặt trên RPi thường phải dùng IP động, IP loại này phần lớn nằm trong blacklists khiến cho email gởi đi có thể bị từ chối.

Cách giải quyết thông thường là dùng relay host. Mail server của chúng ta gởi nhờ email qua trung gian các mail server uy tín khác. Các SMTP relay này phần lớn là chỉ miễn phí 200-300 email một ngày, riêng Gmail miễn phí 500 email một ngày với điều kiện không gởi trong một lần.

Với doanh nghiệp nhỏ 15-20 nhân viên, có thể dùng 1-2 tài khoản Gmail để gởi mail là đủ. Vấn đề là làm sao đếm số email được gởi qua một tài khoản đã đủ định mức để chuyển sang dùng tài khoản khác.

Continue reading

Comments Off on Đếm mail được postfix gởi đi

Filed under Software

Onvif: Lỗi kết nối với camera

Mỗi kiểu camera của mỗi hãng đều có các hạn chế về số kết nối đồng thời với camera. Trường hợp camera vẫn hoạt động bình thường nhưng thiết bị bên ngoài thử kết nối lại nhiều lần (thí dụ reboot) thì có thể không kết nối được nữa.

Một thí dụ là script onvif-motion-recorder chạy trên RPi và RPi định kỳ reboot theo lịch thì sau đó script onvif-motion-recorder không thể kết nối với camera.

Một giải pháp là reboot camera trước khi thử kết nối lại

Continue reading

Comments Off on Onvif: Lỗi kết nối với camera

Filed under Software

Tools cho ổ đĩa đám mây

cloudup

Giám sát một thư mục và upload lên ổ đĩa đám mây các thay đổi trong thư mục đó.

Trong thư mục nguồn này có thể chứa các symlink trong các thư mục con cho đến cấp 2. Điều này giúp gom các thư mục nguồn về một nơi và tổ chức các thư mục ở ổ đĩa đám mây gọn gàng hơn.

Thí dụ thư mục autosync chứa 2 symlink và thư mục con backup chứa 4 symlink

/autosync
├── backup
│   ├── EloQ-backup -> /mnt/EloQ
│   ├── move2new -> /mnt/move2new
│   ├── tool -> /mnt/tool
│   └── wordpress.sql.gz -> /mnt/backup/wordpress.sql.gz
├── lyntuan -> /mnt/backup/lyntuan
└── picture -> /mnt/minidlna/picture

## hình 1 ##
Continue reading

Comments Off on Tools cho ổ đĩa đám mây

Filed under Software

Xác thực kiểu Digest

  • Xác thực kiểu Basic dùng base64 để mã hóa thông tin. Nó không an toàn vì có thể giải mã dễ dàng.
  • Xác thực kiểu Digest dùng băm với mã hóa MD5 và có thêm giá trị nonce để ngăn chặn các cuộc tấn công dò tìm lặp đi lặp lại.

Ngày nay, xác thực digest được dùng phổ biến. Thí dụ khi lấy ảnh snapshot của camera với username/password.

Continue reading

Comments Off on Xác thực kiểu Digest

Filed under Software

Đóng gói ứng dụng Nodejs với npm

Một ứng dụng nodejs thông thường liên kết với rất nhiều module từ nhiều nguồn khác nhau.

Mỗi lần cài đặt một ứng dụng thì ngoài tải về các module của ứng dụng đó còn phải tải về nhiều module phụ thuộc khác. Nếu mỗi ứng dụng cài đặt trong một thư mục khác nhau thì có thể phải tải về các module phụ thuộc trùng lặp nhưng nằm ở các vị trí khác nhau, làm lãng phí không gian đĩa. Có thể tránh điều này bằng cách cài đặt tất cả ứng dụng nodejs vào cùng một thư mục, khi đó chúng chia sẻ các module phụ thuộc ở thư mục con node_modules, tuy cũng có nhiều bất tiện. Ngay cả tìm cách đóng gói ứng dụng trong file exe cũng chỉ che dấu chứ không tránh được việc lãng phí không gian đĩa.

Khi phân phối ứng dụng nodejs, chỉ cần đóng gói các file/module của mình. Các module khác có thể tải về từ các nguồn khác thì không bao gồm trong gói phân phối mà đặt chỉ dẩn để npm tải về.

Continue reading

Comments Off on Đóng gói ứng dụng Nodejs với npm

Filed under Software