Thứ Năm, 14 tháng 12, 2017

Chạy MiniPro TL866 trong Linux


Mình thường hay sử dụng Linux để làm việc, đôi khi muốn nạp chip sử dụng bộ TL866 thì lại vướng vụ chương trình không chạy trên nền Linux mặc dù đã cài Wine.

Bài viết này hướng dẫn các bạn chạy chương trình nạp TL866 hoàn hảo trong Linux.


Có một điều dễ nhận thấy nhất đó là hầu hết các ứng dụng liên quan tới ngành nghề kỹ thuật thì thường là chạy trên Windows mà không phải các hệ điều hành khác, chắc vì do tính ổn định của ứng dụng và cùng số lượng lớn người dùng nên các nhà sản xuất ưu ái cho Windows hơn. Với TL866 cũng vậy, mặc định thì nhà sản xuất họ không hề viết ứng dụng này chạy trên nền Linux nhưng có nhiều người do làm việc trên hệ thống Linux quen rồi nên  họ tìm cách chạy TL866 trên Linux.
 Thật sự phải cám ơn các bạn nước ngoài vì việc này.

Để chạy được TL866 trên Linux thì điều tiên là phải cài ứng dụng Wine (viết tắt của Wine is not an emulator - một phần mềm mã nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành dựa trên Unix)

Các bước thực hiện:

  1. Tải chương trình MiniPro Programmer từ trang web của nhà sản xuất tại link sau. Tải xuống.
  2. Cài đặt ứng dụng Wine nếu chưa cài.
  3. Giải nén ra và chạy với lệnh  sau: wine ./MiniProV660setup.exe.  Ứng dụng sẽ hiện cửa sổ cài đặt y chang như bên Windows.
  4.  Truy cập vào đây và tải xuống toàn bộ các file trong đó (cần thiết khi bạn muốn tự biên dịch *.dll), hãy copy tập tin setupapi_v660.dll vào thư mục cài đặt MiniPro và đổi tên nó thành  setupapi.dll.
  5. Đăng nhập với quuyền Root và tạo tập tin 50-minipro.rules ở thư mục /etc/udev/rules.d/ sau đó mở tập tin này ra và thêm vào nội dung: SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="e11c", GROUP="plugdev", MODE="0666" 

  6. Mở Terminal và gõ lệnh sau: udevadm trigger
  7. Bây giờ hãy cắm cáp USB vào bộ nạp TL866 và xem kết quả kết nối. 

Thao tác bằng dòng lệnh

Nếu bạn không thích cài chương trình thông qua Wine hoặc là sử dụng chương trình MiniPro của hãng phát triển thì còn có một cách nữa là chạy chương trinhg dạng dòng lệnh mã nguồn mở được cộng đồng phát triển Tải tại đây.
Tất cả những gì bạn cần làm là đọc kỹ hướng dẫn của nó, tuy nhiên vì là chế độ dòng lệnh cùng với tính năng nghèo nàn nên lúc đầu có thể sẽ hơi khó xài.

Có một điều bất tiện nữa là muốn xem nội dung của file ROM thì không thể sử dụng chương trình minipro để xem được mà phải sử dụng một chương trình khác để xem nh hd, blesshex hay 010 Editor. Rất bất tiện đúng không nhỉ, vì vậy mình khuyên là vẫn sử dụng chương trình gốc của hãng thì hay hơn. Trên hệ sinh thái Linux thì khó mà có chương trình nào liên quan tới việc Flash NAND ngon cả.

Mình thử so sánh nội dung ROM đọc được từ phần mềm chính hãng với phần mềm mã nguồn mở này thì thấy nội dung khớp hoàn toàn, như vậy là có thể tin tưởng được.

Trong quá trình sử dụng phần mềm chính hãng mình thỉnh thoảng mắc phải một cái lỗi mà mình nghĩ là do chương trình gây ra chứ không phải là chip có vấn đề. "OverCurrent Protection actions! External short circuit/IC reverse or damaged!"

Tuy nhiên với chương trình mã nguồn mở thì nó lại đọc ngon lành, không rõ là do chương trình nó bỏ qua việc kiểm tra nguy cơ tiềm ẩn hay là do vấn đề từ phần mềm chính hãng gây nên, đều này có lẽ không quan trọng với mình lắm vì file mình đọc ra và nạp từ chương trình mã nguồn này cho tới nay đều chạy OK.


Thứ Tư, 13 tháng 12, 2017

Chuyển MiniPro TL866CS sang MiniPro TL866A

Xin chào các bạn.


Trước giờ mình thường hay dùng bộ nạp TL866 mà không để ý rằng nó còn phân chia phiên bản nữa. Đó là TL866CS và TL866A. Vậy sự khác nhau của 2 phiên bản này là gì?

Về bản chất hỗ trợ chip nạp thì cả hai phiên bản này đều hỗ trợ như nhau, nhưng khi bạn cần nạp qua giao tiếp ICSP (in-circuit serial program - nạp trên board mà không cần tháo chip ra, rất tiện lợi phải không?) thì chỉ có phiên bản TL866A hỗ trợ mà thôi, chỉ có như vậy thôi nhưng giá thì chênh lệch nhau cũng đáng kể.

Giao tiếp ICSP thường thì sẽ có trên ATMEL89S51, ATMEL89S52, AT45DBxxx, và toàn bộ họ AVR ATMEGAxxx, MICROCHIP PIC10Fxxx 12Fxxx 16Fxxx 18Fxxx, cũng như SYNCMOS SM59Dxx SM59Rxx.

Tình cờ hôm nay có việc sử dụng bộ này nạp cho một thiết bị mà mình thấy có cổng giao tiếp ISP nên mới để ý tới bộ này và sau khi thắc mắc với google thì mình tìm được kết quả của mấy anh tây họ hack vào firmware để chuyển từ phiên bản TL866CS sang TL866A, mình thử thực hiện theo hướng dẫn và thành công (tuy hơi run tay vì ngày đó mua cũng không có rẻ lắm). Ở VN mình thấy có nhiều của hàng, cty bán bộ nạp này (phiên bản TL866CS) vì nó thực sự cần thiết đối với anh em kỹ thuật + hỗ trợ rất nhiều chip nạp (hiện tại là >14.000>

Để thực hiện việc chuyển đổi qua lại giữa hai phiên bản này, các bạn có thể truy cập vào địa chỉ https://www.eevblog.com/forum/blog/eevblog-411-minipro-tl866-universal-programmer-review/ và đọc thật kỹ hướng dẫn nếu như muốn làm.

Nếu thấy quá rườm rà thì làm theo hướng dẫn dưới đây.
 
1: Cài đặt chương trình vào C:\MiniPro (Có thể tải tại đây).
2: Cắm dây cáp USB vào bộ nạp (nếu có phiên bản firmware mới hơn so với firmware trên bộ nạp thì chương trình sẽ gợi ý bạn thực hiện việc cập nhật).
3: Chạy chương trình MiniPro Programmer và nhìn vào thanh status của chương trình sẽ thấy phiên bản hiện tại TL866CS.

4: Thoát khỏi chương trình và tải tiếp file này.
5: Chạy chương trình TL866.exe từ bất kỳ thư mục nào mà bạn đã lưu nó.
6: Nhấp vào nút [...] và chọn tập tin update.dat từ C:\MiniPro.
7: Chọn "Firmware Dumper" và nhấn vào nút "Reflash".Nó sẽ hỏi xác nhận thì nhấn Yes
8: Nhấn vào "Advanced", sau đó chọn "A Bootloader", và nhấn vào nút "Write"
9: Nhớ bỏ chọn mục "Code protection bit", và sau đó nhấn "Write"
A: Nhấn OK để thoát ra cửa sổ chính và sau đó chọn "TL866A firmware" nhấn tiếp "Reflash"
B: Khi đã reflash xong, nhấn vào "Reset", chờ, nhấn lại "Reset".
C: Thoát chương trình TL866.exe.
D: Chạy lại chương trình MiniPro Programmer và xem phiên bản bây giờ là TL866A.

E: Chúc may mắn.:)

Thứ Tư, 6 tháng 12, 2017

Điện trở giả...

Bữa rồi có dịp mua linh kiện, cụ thể con điện trở 1k5/10W như cái hình dưới. Mọi lần mình mua thì nó đều là giá 5k/em, nay ghé tiệm khác thì nó báo giá có 2k/em. Cũng tính không lấy vì nhìn thấy màu sắc cùng với cách đóng gói nham nhở nhưng không hiểu sao lại lấy.
Về nhà mình có thử hi sinh đập một con 5K và con 2K ra thì ...

Mời các bạn xem hình để thấy rõ hơn.

Ruột THẬT
Chữ sắc nét, chân linh kiện to


Ruột gồm 2 con điện trở 750Ohm/2W nối tiếp với nhau thành 1k5/10W ???
Chữ nhòe nhoẹt,,, chân linh kiện nhỏ, yếu

Thứ Hai, 4 tháng 12, 2017

[Phần 3] Box FPT chạy gì khi khởi động?



Hiện tại theo như mình biết thì Box sau khi bật nguồn sẽ thực hiện tuần tự các bước sau:
  1. Boot loader from serial flash in Sigma Designs SMP86xx chip.
  2. Boot loader from NAND flash. 
  3. Linux kernel from NAND flash. 
  4. /sbin/init and /etc/init.d/rcS 
  5. /etc/init.d/S99local 
  6. /tango/app/runme.sh 
GHI CHÚ: 
- Từ bước 1-5 đây là mặc định được cấu hình từ SDK.
- Từ bước 6 trở về sau là do dev họ quyết định...
Giải thích:

 /etc/init.d/S99local

  • Đây là script chính sẽ được chạy sau khi kernel đã được chạy, thường thì script này nó nằm luôn trong phân vùng của pt residing in the rootfs filesystem (which is the part of the Linux kernel image). -
  • This boot script performs the following steps:
  • - Loads various drivers:
  • - FIP (front interface panel) driver.
  • - IR (remote control) driver.
  • - Drivers for storage devices (SATA, USB, SD card).
  • - Drivers for additional filesystems (e.g. NTFS).
  • - NAND flash driver. - Checks for local storage devices (e.g. USB flash drive).
  • - If such devices are found, they are tried to be mounted.
  • - NOTE: All mounted local storage devices are kept mounted in /tmp/boot_mnt/; these temporary mounts points are called "boot mounts"; at a later boot stage, /tango/bdstart.sh script will further analyze them and remount them into an appropriate final location.
  • - Checks if emergency firmware recovery should be performed (triggered by "dune_firmware.dff" file in the root of any mounted local storage device).
  • - Emergency firmware recovery updates all parts of the flash memory which are updated during normal firmware upgrade process. This includes all read-only parts of the firmware, such as Linux kernel and /tango. This does not include /mnt flash memory parition which is used to store STB settings. - After emergency firmware recovery is finished, the STB hangs and the user should remove the local storage device with "dune_firmware.dff" file and manually reboot the STB. - Checks if emergency settings reset should be performed (triggered by "dune_boot_reset_settings.flag" file in the root of any mounted local storage device).
  • - Emergency settings reset reformats /mnt flash memory partition which is used to store STB settings.
  • - After emergency settings reset is finished, the STB continues normal boot process.
  • - Mounts the main read-only flash memory partition to /tango.
  • - Mounts the main read-write flash memory partition to /mnt.
  • - If this fails (e.g. the filesystem is corrupted), reformats it and retries.
  • - Calls /tango/bdstart.sh.

/tango/app/runme.sh

  • - This is the main boot script residing in the /tango partition.
  • - This boot script performs the following steps:
  • - Loads some additional drivers. 
  • - Does some additional initialization.
  • - Prepares some symlinks. 
  • - Prepares some environment variables.
  • - Prepares some required directories and files in the RAM disk (e.g. in /tmp).
  • - Handles "boot mounts", remounts some of the local storage devices to /persistfs ("system storage") and /D ("main storage") when needed.
  • - Loads Sigma Designs MRUA drivers (microcodes and kernel modules).
  • - Frees resources occupied by the boot splash.
  • - Mounts /firmware_opt and/or /flashdata flash memory partitions, when they exist.
  • - NOTE:
  • The following scripts are used here:
  • - /tango/firmware/mount_firmware_opt.sh
  • - /tango/firmware/mount_flashdata.sh
  • - Does some more initialization. In particular, calls the following extra init scripts:
  • - /tango/firmware/scripts/init_timezone.sh
  • - /tango/firmware/scripts/init_cron_apps.sh
  • - /tango/firmware/ftpserver/run
  • - /tango/firmware/smbserver/run
  • - /tango/firmware/scripts/init_ssh_server.sh
  • - Calls the following script, if it exists (can be used in custom firmware builds to do some extra custom initialization on STB boot):
  • - /tango/firmware/config/start.sh
  • - Does some more initialization.
  • - Finally, launches the following executable: /tango/firmware/bin/root

Bài đăng nổi bật

Cấu hình tốt nhất cho VideoSubFinder

 

Popular Posts