2019年11月16日 星期六

永豐大戶升級帳戶並且可以自行設定約定帳戶

**** 前提必須要有讀卡機 + 電腦 ****

步驟如下:
1. 首先必須臨櫃告知行員要"開啟網路設定約定帳戶功能",行員會幫你升級帳戶等級,升級後你就有自行設定的權限,臨櫃設定後的次一工作日生效。

2. 接下來你必須申請網路銀行,因為要設定約定帳戶,只有"網路銀行""行動銀行"(手機APP)可以做設定(網路ATM無法設定),網路銀行申請網址如下(必須用到讀卡機):
申請網路銀行/密碼重置 --> WebATM申請(連接讀卡機)
https://mma.sinopac.com/MemberPortal/Member/ApplyMmaIndex.aspx

3. 網路銀行申請完成之後,馬上就可以登錄網路銀行,登陸之後,請選擇:
申請/設定 --> 常用非約定帳號--> 約定轉入帳號 --> 新增帳號


以上步驟完成,就可以了~

2019年10月15日 星期二

一版source code要編譯出兩個版本,#ifdef 加上 -D Macro 的用法

假設今天我有一隻code,我想要讓他編譯的時候可以編譯出VER1與VER2的不同結果,以不動到source code為原則,該怎麼作呢?

首先Code必須這樣寫:

=========== source.c =================
#include <stdio.h>
int main()
{
    #ifdef VER1
        printf("This is VER1 !\n");
    #else
        printf("This is VER2 !\n");
    #endif

    return 0;
}
====================================

編譯的時候,如果要編譯出VER1,則必須如下修改:
gcc source.c -o source -D VER1

如果要編譯出VER2,則必須如下修改:
gcc source.c -o source -D VER2











若是這些#ifdef是要改在 Linux Kernel,在source code 加完之後,-D Macro的部分可以直接加在 Linux Kernel的Makefile裡面,請找看看CFLAGS相關的,並且加在CFLAGS上面試試看,編譯後應該可以成功。













另外Makefile加完成之後,編譯時記得要下:
# make VER1=1

這樣子編譯才會跑到VER1定義的地方

2019年9月24日 星期二

dd 檔案合併,詳細使用方法

dd基本的參數描述如下:

*基本輸入輸出
if=FILE:輸入名稱
of=FILE:輸出名稱

*做相對應的轉換conv=[lcase/ucase/nocreat/notrunc/fdatasync]
lcase:大寫字母轉小寫
ucase:小寫字母轉大寫
nocreat:不要建立輸出檔案
notrunc:input小於output時,仍維持output大小
fdatasync:讓資料同步寫入硬碟

*區塊參數,分別有以下四個參數可以調整:
bs=[bytes]:等同於同時設定ibs和obs,一次讀或寫的block size。
ibs=[bytes]:指定每次讀取的block size(default 512 bytes)
obs=[bytes]:指定每次寫入的block size(default 512 bytes)
count=[number]:只處理前[number]輸入區塊,block size要參考ibs。
seek=[number]:輸出檔案跳過前[number]個區塊,block size要參考obs。
skip=[number]:輸入檔案跳過前[number]個區塊,block size要參考ibs。


下面給幾個使用範例:

[example_1] 使用dd產生一個2MB的檔案,其內容皆為0xff
dd if=/dev/zero ibs=1M count=2 | tr "\000" "\377" >rom.bin

[example_2] 使用dd把一個835KB的檔案(flash.bin)放到 2MB的rom.bin檔案的最前面
$ dd if=flash.bin of=rom.bin bs=1K count=835 conv=notrunc

[example_3] 使用dd把一個64KB的檔案(env.bin)放到2MB的rom.bin檔案的960KB位置之後
$ dd if=env.bin of=rom.bin bs=1K count=64 seek=960 conv=notrunc

[example_4] 使用dd把一個1024KB的檔案(jffs2.bin)放到2MB的rom.bin檔案的1024KB之後的位置
$ dd if=image.jffs2 of=rom.bin bs=1K count=1024 seek=1024 conv=notrunc

最終的rom.bin內容如下圖所示:






















*產生空的1MB 的jffs2 image的指令(jffs2_dir為一個空資料夾):
$ mkfs.jffs2 -r jffs2_dir -o image.jffs2 --pad=0x100000
若是沒有mkfs.jff2指令,請先使用apt-get install mtd-util

2019年9月20日 星期五

C 更改檔名 example

紀錄C當中,一個簡單的改檔名function,rename();

#include <stdio.h>

int main () {
   int ret;
   char oldname[] = "file.txt";
   char newname[] = "newfile.txt";
 
   ret = rename(oldname, newname);

   if(ret == 0) {
      printf("renamed successfully");
   } else {
      printf("unable to rename");
   }
 
   return 0;
}


2019年9月3日 星期二

[shell script] 2進制,10進制,16進制的轉換方法

1. 搭配ibase, obase, bc 能夠達到進制轉換的目的
2. ibase => input base為幾進制,obase => output base為幾進制
3. 注意須先寫obase,再去寫ibase

上面幾點注意事項了解了之後,來看實際範例:

example: 16進制"35"轉10進制
echo "obase=10; ibase=16; 35" | bc
=> 53

example: 16進制"C0"轉10進制
echo "obase=10; ibase=16; C0" | bc
=>192

實際應用可以這樣
value=`echo "obase=10; ibase=16; C0" | bc`
echo $value
=>192


或是可以這樣
tmp=C0
value=`echo "obase=10; ibase=16; $tmp" | bc`
echo $value
=>192

============= 如果沒有 bc 可以使用, 則用下面方式(only 16轉10) ============
echo $((0x35))
=> 53

使用變數的用法
hexVal=35
echo $((0x${hexVal}))
=> 53

2019年8月8日 星期四

使用ethtool開啟/關閉 wol功能的指令

使用說明:
開啟Wake on lan ==> ethtool -s [Interface] wol g
關閉Wake on lan ==> ethtool -s [Interface] wol d

# ethtool -s eth0 wol g
# ethtool -s eth0 wol d

最後可以使用ethtool查看WOL是否有開啟


2019年8月2日 星期五

equal to linux "which" command in windows

在Windows環境下,可以使用"where" command,其功能等同於linux底下的which
例如: 我要查詢g++的路徑

C:\>where g++
C:\Dev-Cpp\bin\g++.exe