12/15/2011

PHP : Check date in year 365 or 366

$year = ปีที่เราต้องการหา
เช่น : list($yyyy, $mm, $dd) = explode('-', ตัวแปรที่เก็บค่าวันที่);


  if ( is_null($year) )    // If don't insert year. เอาวันในปีปัจจุบัน
    return (int)date('L');
 
  if (($year % 400) === 0) {  // ปีอธิกสุรทิน
    return 366;
  } elseif (($year % 100) === 0) { // ปีปกติสุรทิน
    return 365;
  } elseif (($year % 4) === 0) {
    return 366;
  }
  return 365;

ที่มา

ร้านขายของเก่า Jiraporn

การใช้เบื่องต้น
- ใช้งาน Login เชื่อ เฮีย รหัส 13
- เมนู บันทึกการซื้อ
- คีย์ข้อมูลในช่องด้านล่าง OK
- เพิ่มไปเรื่อย ๆ  เมื่อหมดรายการ กด เครื่องหมาย +
- เครื่องจะบันทึกข้อมูลและพิมพ์รายการ

//////////////////////////////////////////////////////////////////

การติดตั้งโปรแกรม
1. Copy ฐานข้อมูลไว้ก่อนเสมอ ที่เครื่องจะอยู่ที่ D: Data ชื่อว่า Rebiz28.mdb
2. Copy ไฟลทั้งหมดไว้
หรือ DownLoad ที่ http://www.mediafire.com/?vb27jmbnryu3e5d
3. ติดตั้งไฟล์ Setup อยู่ที่ RECYCLEBIZ3\SETUP DEMO\Setup เพื่อเอาไฟล์ที่ต้องการลงเครื่อง
4. Copy ไฟล์ ตาม ข้อ 2 หรือที่แตก ชื่อ Program ไว้ที่ Drive ที่ต้องการ
5. Copy ฐานข้อมูล ใน ข้อ 1. ลงใน ข้อ 4.
6. แก้ไฟล์ Config.ini ใน โฟล์เดอร ข้อ 4. ที่ให้ชี้ไปที่ ฐานข้อมูลให้ถูกต้อง
ที่ Server="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DATA\Rebiz28.mdb;Persist Security Info=False"  เป็นต้น หรือผ่าน Share เช่น Server="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Jiraporn\DATA\Rebiz28.mdb;Persist Security Info=False"  เป็นต้น

หากไม่ได้ ต้อง Copy ฐานข้อมูลไว้ก่อน เสมอ
- Ghost windows กลับ
- Ghost กล้องวงจรปิดด้วย

//////////////////////////////////////////////////////////////////

เพิ่มเติม โปรแกรม ช่าง



11/25/2011

Ubuntu : ติดตั้ง Webmin

1. Download โปรแกรม
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.570_all.deb
หรือ
wget http://192.168.0.252/webmin-1.560_all.deb

2.ติดตั้งด้วยคำสั่ง
dpkg -i webmin-1.570_all.deb

3.ถ้าขาด package บางอย่าง ต้องลงเพิ่มด้วยคำสั่ง
apt-get install -f

4.เรียกใช้งานได้จาก https://hostname:10000 (login ด้วย user ที่ sudo ได้)

Ubuntu : ตั้งเวลาปิดเครื่อง

อ้างอิงจาก : http://www.cyberciti.biz/tips/howto-shu ... cally.html
สั่ง manual
เช่น
shutdown -h 17:40 #ปิดเครื่อง เมื่อเวลา 17.40 น.

หรือ
shutdown -r 12:00 #Restart เครื่องตอนเที่ยง


ตั้งเวลาให้ปิด
ตั้งไว้ใน crontab ด้วยคำสั่ง crontab -e แล้วสั่งตามรูปแบบนี้
m h dom mon dow command

เช่น
40 17 * * * /sbin/shutdown -h now

X++: ตัดแบ่งข้อความกับตัวเลข

ตัวอย่าง code สำหรับแบ่งข้อความกับตัวเลข เช่น ชื่อ journal กับ เลขเดือน >> RTT09, VRTT10


    str     JournalName = "VRCP09";
    str     strName;
    str     strMonth;
    ;
    strName = strrem(JournalName, "0123456789"); //ตัดตัวเลขออกให้หมด
    strMonth = strrem(JournalName, "ABCDEFGHIJKLMNOPQRSSTUVWXYZ"); //ตัดตัวอักษรออกให้หมด
    //strMonth = substr(JournalName, strlen(JournalName)-1, 2); //ตัดเอา 2 ตัวท้าย
 
    print strfmt("%1 : %2",strName, str2int(strMonth));
    pause;

ทำ Web แบบ CMS ด้วย Joomla

ทำเว็ป แบบ CMS ง่ายนิดเดียว
สำหรับใคร ที่อยากทำ Web

ด้วย Download ๋Joomla full 1.5.22 พร้อมคู่มือติดตั้งและใช้งาน ภาษาไทย

http://www.mediafire.com/?wlz2zb69ozp2r9l


คู่มือภาษาไทย
http://www.mediafire.com/?9f333l73nk4n256

Axpta X++ : Set dafault ให้ Froms ที่สร้างขึ้นเองไม่มี Data Source

เขียนโปรแกรมใน Method Run หรือ int.
void init()
{
    InventMaterial      TableInventMaterial;
    InventTableModule   TableInventTableModule;
    VendInvoiceTrans    TableVendInvoiceTrans;
    PurchTable          TablePurchTable;
    InventDim           TableInventDim;

    MaterialCode        strMidItemId;
//ประกาศตัวแปร
    FormStringControl   strunitId, strmaterial, strAccountNum, strBatchnumber;
    FormDateControl     dateDeliveryDate;
    ;
    super();
//เก็บค่าใส่ตัวแปร
    strunitId           = element.design().control(control::Unit);
    strmaterial         = element.design().control(control::Material);
    dateDeliveryDate    = element.design().control(control::DateEdit);
    strAccountNum       = element.design().control(control::AccountNum);
    strBatchnumber      = element.design().control(control::InventBacth);

///// Set default in form. ///////////

    myItem = element.args().record();
    strMidItemId = substr(myItem.ItemId,4,2);

    SELECT * FROM TableInventTableModule
    WHERE TableInventTableModule.ItemId == myItem.ItemId;

    strunitId.text(TableInventTableModule.UnitId);

    SELECT * FROM TableInventMaterial
    WHERE TableInventMaterial.MaterialCode == strMidItemId ;

    strmaterial.text(TableInventMaterial.MaterialSymbol);


    SELECT * FROM TableVendInvoiceTrans
    WHERE TableVendInvoiceTrans.ItemId ==  myItem.ItemId;

    straccountNum.text(PurchTable::find(TableVendInvoiceTrans.PurchID).OrderAccount);
    strBatchnumber.text(InventDim::find(TableVendInvoiceTrans.InventDimId).inventBatchId);

    dateDeliveryDate.dateValue(Today());



}

Axapta X++ : รับค่าจาก Forms ที่สร้างขึ้นเองไม่มี DataSource.

void clicked()
{
    InventTable         myInventTable;

    InventTrans         tmpInventTrans;
    InventTableModule   tmpInventTableModule;
    VendTable           tmpVendTable;
    InventBatch         tmpInventBatch;
    SCI_Print_Label     tmpSCI_Print_Label;

    DictEnum            dictEnum;
    int                 enumValue;
    int                 i = 1;

    SCI_TmpPrintLabel       TableTmpPrintLabel;
//ประกาศตัวแปร
    FormStringControl   strUnitId, strAccountNum, strBatchnumber, strMaterial, strSalesOder;
    FormRealControl     realQty;
    FormDateControl     dateDeliveryDate;
    FormComboBoxControl intLabelSheet;
    //FormStringControl      intLabelSheet;
    str                 urlfile;

    ;
//เก็บค่าใส่ตัวแปรที่ประกาศ

    realQty             = element.design().control(control::Qty);
    strunitId           = element.design().control(control::Unit);
    straccountNum       = element.design().control(control::AccountNum);
    strbatchnumber      = element.design().control(control::InventBacth);
    strmaterial         = element.design().control(control::Material);
    dateDeliveryDate    = element.design().control(control::DateEdit);
    strSalesOder        = element.design().control(control::SalesOrder);
    intLabelSheet       = element.design().control(control::LabelSheet);
    dictEnum            = new DictEnum(enumnum(LabelPerSheet));
    EnumValue           = dictEnum.name2Value(LabelPerSheet.valueStr());

    TableTmpPrintLabel.clear();

    TableTmpPrintLabel.ItemId              = InventTable.ItemId;
    TableTmpPrintLabel.ItemName            = InventTable::find(TableTmpPrintLabel.ItemId).ItemName;
//เก็บข้อมูล ลง Table
    TableTmpPrintLabel.Qty                 = realQty.realValue();
    TableTmpPrintLabel.Unit                = strUnitId.valueStr();
    TableTmpPrintLabel.AccountNum          = strAccountNum.valueStr();
    TableTmpPrintLabel.BatchNum            = strBatchnumber.valueStr();
    TableTmpPrintLabel.Material            = strMaterial.valueStr();
    TableTmpPrintLabel.DeliveryDate        = dateDeliveryDate.dateValue();
    TableTmpPrintLabel.SaleOrder           = strSalesOder.valueStr();
    //TableTmpPrintLabel.LabelSheet          = intLabelSheet.;
    TableTmpPrintLabel.LabelSheet          = EnumValue;

    TableTmpPrintLabel.insert();
    Button_Save.enabled(false);

}

Axpta X++ : Loop call forms in Axapta.

- Code in button form Item.
- You create form name SCI_Print_Lable.

Example in Project SCI_PrintLabe.

void clicked()
{
/////// Use Call Form //////////
    void PrintLabel(InventTable runInventTable){
        Args      args  =  new Args();
        FormRun   formRun;
        ;
        args.name(formstr(SCI_Print_Label));
        args.record(runInventTable);
        //args.caller(this);

        formRun = classfactory.formRunClass(args);
        formRun.init();
        formRun.run();
        formRun.detach();
        formRun.wait();
    }

    ;
/////// Delet Data In Table. Befor insert new data. //////////
    ttsbegin;
        WHILE
        SELECT FORUPDATE * FROM TableTmpPrintLabel
        {
            TableTmpPrintLabel.delete();
        }
    ttscommit;

/////// Loop check count seleted in line. //////////
    for (myInventTable = InventTable_ds.getFirst(true) ? InventTable_ds.getFirst(true) :InventTable_ds.cursor();
        myInventTable;    myInventTable = InventTable_ds.getnext()){
         x++;
        }

    if (x > 1){
        i = x;
    /////// Loop check count for open form. //////////
        for (myInventTable = InventTable_ds.getFirst(true) ? InventTable_ds.getFirst(true) :InventTable_ds.cursor();
            myInventTable;    myInventTable = InventTable_ds.getnext()){

            PrintLabel(myInventTable);
        }

// super();
}

VB 2008 :: Code รับค่า Barcode + Enter

TextBoxBarCode ชื่อ Text ที่รับค่า จาก Barcode
Barcode มีการกำหนดค่า ให้มีการ Enter

    Private Sub txtbarcode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxBarCode.KeyDown
 
        If e.KeyData = Keys.Enter Then
            If Len(TextBoxBarCode.Text) = 15 Then 'เช็คครบ 15 ตัวหรือป่าวถ้าครับส่งค่าไปอีก Form
                Form_Asset_Detail.connectionString = myConnectionString
 
                Form_Asset_Detail.TextBox_Code.Text = TextBoxBarCode.Text
                Form_Asset_Detail.Show()
            Else ' ถ้าไม่ครับให้แจ้งเตือนว่า Code ไม่ถูฏ
                MsgBox(" รหัสทรัพย์สินไม่ถูก กรุณาตรวจสอบ")
            End If
 
        End If
 
    End Sub

VB 2008 :: ลดขนาด size ของรูป ก่อนเก็บ

เป็นการลดขนาด size ไม่ได้ลดขนาดความกว้างความสูงของภาพ ครับ

            Dim percentResize As Double
Dim bm As New Bitmap(TextBox_URL.Text) 'ที่อยู่ Part และชื่อไฟล์ที่จะ ลดขนาด
Dim width As Integer = bm.Width - (bm.Width * percentResize) 'image width.                Dim height As Integer = bm.Height - (bm.Height * percentResize)  'image height
Dim thumb As New Bitmap(width, height)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, width, height), New Rectangle(0, 0, bm.Width, _
bm.Height), GraphicsUnit.Pixel)
g.Dispose()
bm.Dispose()

'image path New.
thumb.Save(TextBox_URL.Text, _
System.Drawing.Imaging.ImageFormat.Jpeg) 'can use any image format
thumb.Dispose()


**** เวลานำมาแสดงในตัวโปรแกรม VB โดยใช้ PictureBox
ให้กำหนด SizeMode เป็น StretchImage เพื่อให้รูปพอดี กับกรอบที่กำหนดไว้

ที่มา http://www.thedesilva.com/2010/01/resize-image-using-vb-net/

11/14/2011

AxaptaX++ : how to get the value of autodeclared combo box

DictEnum dictEnum;
int enumValue;
;

dictEnum = new DictEnum(enumnum(YourEnum));
EnumValue = dictEnum.name2Value(YourEnum.valueStr());

return EnumValue;

 

ที่มา

http://www.eggheadcafe.com/microsoft/Axapta/29969290/how-to-get-the-value-of-autodeclared-combo-box.aspx

10/28/2011

วิธี Download Clip VDO จาก Youtube โดย Google Chrome + Chrome YouTube Downloader


วิธี Download Clip VDO จาก Youtube โดย Google Chrome + Chrome YouTube Downloader




     หลายๆ คนคงได้ใช้เว็บไซต์ Youtube เพื่อชม Clip Video ต่างๆ และในบางครั้งต้องการที่จะ Download ลงมาเก็บไว้ในเครื่อง เพื่อนำไปใช้งานหรือไว้ดูภายในเครื่องตัวเอง


     วันนี้ผมมีวิธีการ Download Clip Video จาก Youtube ง่ายๆ โดยใช้โปรแกรมท่อง Internet ที่ตอนนี้นิยมกันใช้งานอยู่มาก นั้นคือ Google Chrome นั้นเอง อยากรู้แล้วใช่ไหมละ ว่าทำอย่างไร Google Chrome ถึง Download Clip Video จาก Youtube ได้ มาดูวิธีกันเลยดีกว่า




ก่อนอื่นเราต้องติดตั้งส่วนเสริมของ Google Chrome เพื่อให้สามารถ Download Clip Video จาก Youtube ก่อน

วิธีติดตั้งส่วนเสริม Chrome YouTube Downloader ให้กับ Google Chrome
ให้ใช้ Google Chrome เข้าเว็บไซต์ตาม Link นี้ : http://mandel-design.xf.cz/Chrome-Youtube-Downloader/?action=chrome

จากนั้นจะพบหน้าเว็บดังรูป คลิกที่ Install Now !



จะพบ Popup ขึ้นมาเพื่อยืนยันการติดตั้ง Chrome YouTube Downloader คลิก Install


ลองเข้าเว็บไซต์ Youtube ในหน้าที่เราดู Video ทางด้านล่างจะพบกับปุ่ม Download ให้คลิกและเลือกชนิดไฟล์ที่ต้องการ Download ได้เลยครับ

10/17/2011

Ubuntu : how to change Login screen in Ubuntu 11.10

How to Change Login Screen – Background/Logo from Terminal
Open a terminal (Ctrl+Alt+t) and type the command (to manually edit the lightDM configuration file) -

sudo gedit /etc/lightdm/unity-greeter.conf

Then a new window will appear, where you need to provide the path for the background image.


In a similar way, you can change the default logo, by editing the just below line in unity-greeter.conf file.
Tweak LightDM appearance using ‘Simple LightDM Manager’


To install, Simple LightDM Manager, open a terminal and execute the following commands -

sudo apt-add-repository ppa:claudiocn/slm
sudo apt-get update
sudo apt-get install simple-lightdm-manager

Ubuntu : Ubuntu version ใหม่ ให้กลับไปใช้หน้าจอแบบ Classic

วิธีแปลง Ubuntu version 11.10 ให้ใช้หน้าจอแบบ gnome classic ได้

- After install Ubuntu 11.10 finish so Update and Upgrade
- Use command install gnome by command "apt-get install gnome-shell" in terminal.
- Set gnome classic in user log-in. The first you close automatic log-in  on System Setting and select Account Setting.

You can use gnome classic in new Ubuntu 11.10.

หากต้องการให้ Ubuntu 11.10 login auto เป็น Genome ให้ทำตามนี้
If you enable auto log-in in Ubuntu 11.10 Oneiric, it automatically logs into Unity. Some people installed gnome-shell Gnome 3 desktop and want Ubuntu auto log into gnome-shell. Normally, we first disable auto log-in behavior, log out and back into gnome-shell, and finally in Gnome 3 desktop enable auto log-in again.
Unfortunately, this settings doesn’t work for me, but I found a command-line solution (from Ubuntu forum):
To make Ubuntu 11.10 auto log-in gnome-shell, open up a terminal window and run this command:
sudo /usr/lib/lightdm/lightdm-set-defaults -s gnome-shell
If you want to change back to Unity, run:
sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu

10/15/2011

Driver xp Dell N4030 inspiron



Driver Windows Xp Dell N4030 inspiron
หายาก โครตเล่นเอาโปรอย่างเราเหนื่อยอยู่หลายวัน

Dowload กันเลย Mediafire ล่วน ๆ ครับ

Part 1 : http://www.mediafire.com/?ma4qgoj1y620m5s

Part 2 : http://www.mediafire.com/?9ubvkvfnpv3tqwb

Part 3 : http://www.mediafire.com/?4ryix6xqmti5esu

Part 4 : http://www.mediafire.com/?9zchkutfm0to47j

10/14/2011

hotmail ถูกบล็อก

แก้ปัญหา Hotmail ถูกบล็อก ในกรณี
เป็นกันมากเหลือเกินช่วงนี้เนื่องจาก Hotmail เพิ่มประสิทธิ์ภาพความปลอดภัย ของเมล์ ทำให้หลายคน หลาย User โดน บล๊อก เป็นแถว ๆ ถ้าอาการตามด้านล่างนี้สามารถแก้ได้ ครับ

1. ถูกบล็อกจาก hotmail โดยตรง ถึงแม้จะใส่รหัสถูกแล้ว จะมีข้อความดังรูป

2. ใช้แก้ปัญหาได้ในกรณี ที่ไม่มีการใส่เมล์สำรองไว้ เท่านั้นถ้ามี Hotmail จะส่งไปเมล์สำรอง
3. ในกรณีลืมรหัสผ่านก็ไม่สามารถทำได้

วิธีแก้คือ
1. logon เข้าใช้งาน hotmail ตามปกติ แล้วจะขึ้นหน้าตามรูป


2. คลิกที่ดำเนินการต่อ
3. ใส่หมายเลขโทรศัพท์ที่เราใช้งานและเว้นวรรค ตามตัวอย่าง โดย หมายเลขโทรศัพท์ตัวแรกไม่ต่องใส่
4. รอสักครู่จะมีข้อความเข้าโทรศัพท์หมายเลขที่เราใส่ไปตามข้อ 3. เปิดข้อความใน โทรศัพท์
5. นำรหัสที่ Hotmail ส่งมาให้ ใส่ในช่อง แล้วคลิกดำเนินการต่อไป



6. ใส่รหัสผ่านเดิม แล้วตั้งรหัสใหม่ โดยไม่ให้เหมือนรหัสเก่า แล้วคลิก บันทึก

7. จะเก็บเบอร์มือถือนี้ไว้เพื่อความปลอดภัยหรือไม่ต้องการเก็บ แล้วคลิกดำเนินการต่อไป


8. แนะนำ ให้ใส่ Email สำรองไว้ ที่ไม่ใช่เมล์นี้ เพื่อความปลอดภัยและเวลาลืมรหัสผ่านสามารถกู้คืนได้ง่ายแต่ถ้ายังไม่มีก็เว้นไว้คลิกดำเนินการต่อไป สามารถเข้าไปตั้งค่าเมล์สำรอง ในเมล์ได้

9. คลิกลงชื่อเข้าใช้ด้วยรหัสผ่านใหม่ของคุณ

10. ใส่ user name และรหัสผ่านใหม่ เท่านี้ก็ใช้งานได้แล้วครับ


*** หมายเหตุ เมนูที่ใช้กู้รหัสขึ้นอยู่กับการตั้งค่าใช้ภาษาในเมล์ ถ้าเป็นเมนูภาษาอังกฤษ คำและภาษาจะต่างจากข้างบนครับ แต่ทำตามรูปได้

10/06/2011

Ubuntu : Clear คำสั่งที่เคยพิมพ์ใน Terminal

การ Clear คำสั่งที่เคยพิมพ์ใน Terminal ทำได้โดยใช้คำสั่ง
history -c

ใช้กรณีที่ไม่ต้องการให้คนอื่นรู้ว่าเราพิมพ์คำสั่งอะไรไปบ้าง หรือ ใช้กรณีที่เผลอพิมพ์รหัสผ่านเข้าไป

Ubuntu : Backup MySQL and www ลง USB หรือ Tabe

หลักการ คือ 
1.ตั้งเวลาให้ทำการ Backup MySQL ไว้
2.สร้าง Folder เพื่อจัดเก็บเป็นวันที่
3.สั่งบีบ MySQL ตามข้อ 1 กับ /var/www/ เข้า Folder ตามข้อ 2
4.copy ข้อมูลลง External Hard Disk

การปฏิบัติ
1.สร้าง Folder สำหรับ Backup

  1. mkdir /opt/backup
  2. chmod 777 /opt/backup

2.สร้าง folder สำหรับ mount External Hard Disk
  1. mkdir /mnt/usbbox


3.สร้าง script สำหรับ backup เก็บไว้ที่ /opt/backup/backup.sh
  1. nano /opt/backup/backup.sh
  2. chmod +x /opt/backup/backup.sh

เนื้อหา script
  1. #!/bin/bash
  2. cd /opt/backup/
  3. suffix=Extranet_-$(date +%y%m%d)
  4. mkdir $suffix
  5. mv *.gz ./$suffix
  6.  
  7. filename=./$suffix.tar.gz
  8. backupdir=/opt/backup/$suffix
  9. cd /tmp/
  10. tar -cvzf "$filename" "$backupdir" /var/www
  11.  
  12. ### mount ext.box
  13. mount -t ntfs-3g /dev/sdb1 /mnt/usbbox
  14. ### copy mysql db to box
  15. cp "$filename" /mnt/usbbox/
  16. ### unmount ext.box
  17. umount /mnt/usbbox
  18. ### delete tmp file
  19. rm "$filename"


กรณี Backup ลง tape ใช้ script ตามนี้
  1. cd /opt/backup/
  2. suffix=Log_MySQL-$(date +%y%m%d)
  3. mkdir $suffix  
  4. mv *.gz ./$suffix
  5.  
  6. #copy ลง Tape drive
  7. backupdir=/opt/backup/$suffix
  8. tar -cvf /dev/st0 "$backupdir"
  9. tar -f /dev/st0 offline
  10. #rm -Rf "$backupdir"

4.สั่ง Webmin ให้ backup MySQL ตอนเที่ยงคืน และเรียก script หลังจาก backup เสร็จแล้วตามรูป

Ubuntu : Wake On LAN


การตั้งค่าให้ Ubuntu รองรับการสั่งเปิดเครื่องผ่าน LAN (Wake On LAN) ทำได้ ดังนี้
1.ตั้งค่าใน BIOS ซึ่งแล้วแต่รุ่น ประมาณว่า "Wake up on PCI event", "Wake up on LAN" 
2.ติดตั้งโปรแกรม ethtool (apt-get ethtool)
3.สั่งงาน sudo ethtool -s <NIC> wol g 
เช่น sudo ethtool -s eth0 wol g 
4.ปิดเครื่องแล้วลองสั่งงานด้วยโปรแกรมดู เช่น
4.1 ใน Ubuntu ใช้โปรแกรม gWakeOnLan
4.2 ใน Android ใช้โปรแกรม WoL WakeOnLan
4.3 ใน Windows ใช้ WOL จาก http://www.depicus.com/

บางเครื่องจะต้องสั่งงานใหม่ทุกครั้ง ป้องกันได้โดย
1. run คำสั่งทุกครั้งตอน LAN ทำงาน โดยใส่ไว้ใน /etc/network/interfaces เช่น
  1. auto eth0
  2. iface eth0 inet static
  3.         address 10.0.0.1
  4.         netmask 255.255.255.0
  5.         gateway 10.0.0.138
  6.         up ethtool -s eth0 wol g

หรือ
2. สั่งให้ run ทุกครั้งใน update-rc.d
2.1 สร้างไฟล์ /etc/init.d/wakeonlan
เนื้อหา
  1. ethtool -s eth0 wol g
  2. exit

2.2 chmod a+x /etc/init.d/wakeonlan
2.3 update-rc.d wakeonlan defaults

อ้างอิง : https://help.ubuntu.com/community/WakeOnLan