Skip to main content

PDF Compression with Ghostscript

PDF do preserve the original information especially image when exported. The feature makes it very attractive for archive but it might be too large to spread.

We can use ghostscript command to compress (actually rewrite) a PDF file with a lot of images embedded.

Read more…

Multi-boot from ISO on USB with Grub 2

Last time we've talked about how to Manually UEFI Boot Linux and Windows 10 USB from Grub, today we'd like to talk about creating a multi-boot usb stick with grub 2.

Sometimes we need to create multiple linux distribution installation media or bootable usb stick. However, it is always so annoying to re-flush the usb stick again and again.

However, grub actually enables us to boot most of the linux distributions through loop format or iso image files. The iso image format is known for its original design for CD disks or DVD disks so that the distributions are bootable through your CD-ROM drivers. If the distribution is bootable through the CD-ROM drivers and the CD or DVD media is not writable, which it effectively means that we can actually boot from the non-writable iso image file as well.

Read more…

Linux Device Tree Pinctrl Tutorial

When porting drivers on a specific board for a comparatively new linux kernel, it is common to edit the linux device tree files to put together all the device configurations with register values, working modes and pin control offsets set to expected values.

Here in this post we focus on the exact steps one needs to find the correct pin control offset for specific devices. Here we'd take TI's AM4379 (AM437x) chip as an example for this tutorial.

Read more…

Manually UEFI Boot Linux and Windows 10 USB from Grub


Dead boot of Linux or Windows needs a lot of labor when sometimes it just does not work.

Legacy boot mode does not support hard drives that provides more than 2TB disk space, and mostly you would like to use UEFI mode for better Windows 10 support.

With this tutorial you may:

  1. Learn how to boot from a blank computer into grub via changing BIOS options
    • You need a working computer with Linux
    • Note: it may differ from BIOS to BIOS, but the basic idea does not change
  2. Learn how to boot from multiple different Linux distribution ISO images from a UEFI compatible USB device
  3. Learn how to boot Windows 10 USB in grub

Read more…

A Humble Introduction to the Basics of Unicode

Unicode诞生之前——单字节编码 (Single-Byte Encoding)


!"#$%&'()*+,-./0123456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  • 7位二进制编码
  • 32个控制字符
  • 95个可显示字符
  • 基本通用,但经常使用替换和扩展
  • 适合英语的编码方式,但不适合其他语言


  • IBM提出Code Page概念
  • CP437 (Latin US)
  • CP737 (Greek)
  • Apple: Mac OS Roman
  • DEC: Multinational Character Set
  • ISO/IEC 8859
  • … 扩展ASCII种类不计其数

Read more…